grep textfile.txt -> nur Zahlen ausgeben

Bash, Shell, PHP, Python, Perl, CGI
arachon
Posts: 44
Joined: 2003-03-26 19:22

grep textfile.txt -> nur Zahlen ausgeben

Post by arachon »

Hallo,

ich habe folgendes Textfile (mit Telefonnummern & Teilnehmern):
00123456789 # Franz Müller
014565656 # Max Mustermann
+4930123456 # Berlin AG
+1+12345678 # fehlerhafter Eintrag
$12345678 # fehlerhafter Eintrag
++491234545 # fehlerhafter Eintrag
und möchte dieses mittels "cat" ausgeben, sodass nur Zeilen, die mit einer Zahl oder einem anführenden "+"-Zeichen und einer nachfolgenden Zahl beginnen, ausgegeben werden.

Ausgegeben werden soll jedoch nur die Telefonnummer selbst:
00123456789
014565656
+4930123456
man grep, sed und cut habe ich jetzt durch :wink: , ohne jedoch auf das richtige Ergebnis zu kommen - habt Ihr da vielleicht einen Tip ?


Danke,
Christoph
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: grep textfile.txt -> nur Zahlen ausgeben

Post by captaincrunch »

Code: Select all

egrep ^[:digit:] /pfad/zum/file | cut -d " " -f 1
egrep ^+[:digit:] /pfad/zum/file | cut -d " " -f 1
Alles weitere verrät dir man 7 regex
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
arachon
Posts: 44
Joined: 2003-03-26 19:22

Re: grep textfile.txt -> nur Zahlen ausgeben

Post by arachon »

Hallo,

danke für die prompte Antwort - leider funktioniert dies bei mir nicht.


Ein:

Code: Select all

egrep ^[:digit:] test.txt | cut -d " " -f 1
lieferte leider überhaupt kein Ergebnis.


Hmm, werde mich da nochmals etwas vertiefen müssen...
Die regexp [:digit:] hatte ich bereits ausprobiert - allerdings war das Ergebnis ebenfalls nicht korrekt.

Habe ich z.B. folgendes File:
01234565656
01232323232 # test
01232323555
erhalte ich bei

Code: Select all

egrep [:digit:] test.txt
als Ergebnis nur eine Zeile:
01232323232 # test
-> Sollten da nicht alle drei Zeilen ausgegeben werden ? Immerhin kommen in allen drei Zeilen Zahlen vor...


Die man für regexp hatte ich mir extra unter http://www.gnu.org/manual/grep-2.4/html ... .html#SEC7 durchgelesen (man 7 regexp gibt es auf meiner Kiste nicht)...


Eventuell weitere hints ?


Danke,
Christoph
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: grep textfile.txt -> nur Zahlen ausgeben

Post by olaf.dietsche »

Versuche es mal mit

Code: Select all

awk '/^[0-9+][0-9]* / { print $1; }' datei
arachon
Posts: 44
Joined: 2003-03-26 19:22

Re: grep textfile.txt -> nur Zahlen ausgeben

Post by arachon »

Perfekt !

Ein

Code: Select all

awk '/^[0-9+][0-9]* / { print $1; }'
(ohne Leerzeichen nach dem *) gibt nun auch alle Zeilen aus, in denen (fehlerhaft) kein Teilnehmer enthalten ist. Genau das habe ich gesucht !


Danke !

Grüsse
Christoph