sed: alle Zeilen entfernen die keine Zahl enthalten

A

aspire_5652

Tripel-As
Hallo,
ich habe eine Datei welche vom Aufbau her so aussieht:
Code:
bla
blub

1073643

foobar
105474

Ich möchte gern alle Zeilen entfernen die keine Zahl enthalten. Die Datei soll dann so aussehen:
Code:
1073643
105474

Leider komme ich grade nicht weiter.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

habe es selbst hinbekommen:

sieht zwar etwas scheiße aus, aber funktioniert:

Code:
sed s/^[^0-9]*// input.txt | sed -e '/^ *$/d' > ouput.txt
 
Zuletzt bearbeitet:
Ihr wertet es nicht glauben, aber ich hatte eine Datei mit über 3,5Mio Zeilen. Das "sed"-Kommando hatte die Datei in ca 10-15 sec bearbeitet. Das "grep"-Kommando habe ich dann nach ca 1-2 min abgebrochen und war nur zu 1/3 mit der Datei fertig.
 
Seltsam, bei mir ist es eher andersherum:
Code:
#> wc greptest.text 
 4000000  3599315 21991049 greptest.text
#> time sed s/^[^0-9]*// greptest.text | sed -e '/^ *$/d' > output.text

real    0m25.974s
user    0m23.169s
sys     0m0.740s
#> ~$ time grep [[:digit:]] greptest.text > output.text

real    0m4.175s
user    0m3.396s
sys     0m0.472s
tg@nachtigaller:~$
Also grep ist etwa 4x schneller.

Uebrigens machen die beiden Befehle nicht dasselbe: grep waehlt tatsaechlich die Zeilen aus, die IRGENDWO eine Ziffer enthalten, waehrend Dein sed nur die Zeilen loescht, die an der ersten Stelle keine Ziffer stehen haben.
 

Ähnliche Themen

Zeilen aus Textdatei löschen die $Var1 enthalten und nicht $Var2

Script zur Korrektur einer E-Book Datei

Text mit mehreren Zeilen und Sonderzeichen ersetzten

Zeilen kopieren mit SED

Probleme mit sed: im Text eine Zeile in Großbuchstaben ?

Zurück
Oben