smirnoff
Goto Top

Alle Zeilen in einer Textdatei löschen, wenn diese NUR aus Ziffern bestehen und die Länge von 1 bis 9 haben. Wie?

Hallo an alle!

Ich habe eine Frage.

Ich habe z.B.eine Textdatei, die aus mehreren Zeilen besteht. Die Länge aller Zeilen variert sich zwischen 1 und 30. Dazwischen gibt's viele Zeilen, die NUR aus Zifffern bestehen.

Z.B.:

12345
sdvvber
dfgefg345335
12334567
sdve345ztdfb
123456789
stg3tjigkeb
rgegergr
54585989385
776756873637676067

Ich will NUR die Zeilen, die:
1) aus Ziffern bestehen UND
2) deren Länge zwischen 1 und 9 Zeichen ist
löschen.

D.h. am Ende soll bleiben:

sdvvber
dfgefg345335
sdve345ztdfb
stg3tjigkeb
rgegergr
54585989385
776756873637676067

Ich habe folgendes versucht:

sed ‘/^[0-9]\{1,9\}$/ d’ test.txt > neu.txt

Linux spuckt ein Fehler aus:
sed: -e Ausdruck #1, Zeichen 14: Fehlender Befehl

Kann mir jemand helfen?

Content-Key: 325926

Url: https://administrator.de/contentid/325926

Printed on: April 19, 2024 at 16:04 o'clock

Member: Kraemer
Kraemer Jan 10, 2017 at 08:02:36 (UTC)
Goto Top
^[0-9]{1,9}$
Member: Smirnoff
Smirnoff Jan 10, 2017 updated at 08:20:00 (UTC)
Goto Top
geht nicht:

sed ‘/^[0-9]{1,9}$/ d’ test.txt > neu.txt

sed: -e Ausdruck #1, Zeichen 10: Fehlender Befehl

Wenn es hilft: Microsoft Linux Ubuntu (Windows 10). Txt gespeichert als Win-1252 LF only.

Interessant, dass der Befehl:

sed -r '/^[0-9]+$/d' test.txt > neu.txt  

funktioniert (alle Zeilen mit Ziffern löschen)
Member: Smirnoff
Smirnoff Jan 10, 2017 at 08:26:45 (UTC)
Goto Top
Ich habe Fehler gefunden:

sed '/^[0-9]\{8,9\}$/ d' test.txt > neu.txt
Member: Kraemer
Kraemer Jan 10, 2017 at 09:17:39 (UTC)
Goto Top
cat test.txt | grep -E '^[0-9]{1,9}$' > neu.txt  
Mitglied: 131381
131381 Jan 10, 2017 at 09:40:27 (UTC)
Goto Top
Zitat von @Kraemer:

cat test.txt | grep -E '^[0-9]{1,9}$' > neu.txt  
Er will die Zeilen löschen, es würde hier also Parameter -v fehlen face-wink.

Gruß mik
Member: Kraemer
Kraemer Jan 10, 2017 at 09:41:52 (UTC)
Goto Top
Zitat von @131381:
Er will die Zeilen löschen, es würde hier also Parameter -v fehlen face-wink.
oops - der Parameter ist mir irgendwie flöten gegangen ...