Probleme mit regulärem Ausdruck

Post Reply
Message
Author
Robert

Probleme mit regulärem Ausdruck

#1 Post by Robert »

Hallo,

angenommen ich habe ein File in folgendem Format:

11341234 0001 000134
45323455 0003 000143

Wie kann ich nur die Zeile extrahieren, die ein 0001 in der 2. Spalte hat. Meine Versuche mit egrep und /\<0001\>/ bzw. /0001\t/ führen leider nicht zum gewünschten Ergebnis.

Wo liegt der Fehler?

TIA
Robert

wolfgang

Re: Probleme mit regulärem Ausdruck

#2 Post by wolfgang »

Hallo!

Laut der Manualpage versteht grep kein \t. Du kannst aber mal

cat datei.foo | egrep '^[1234567890]{8}.*0001.*[1234567890]{6}$'

probieren.

Grüße von Wolfgang

User avatar
Eddie
Posts: 180
Joined: 22. Sep 1999 9:28
Location: Lennestadt

Re: Probleme mit regulärem Ausdruck

#3 Post by Eddie »

Hi!

So sollte es funktionieren:

cat datei | awk '{if ($2=="0001") print $0}'
Gruß
Eddie

Jochen

Re: Probleme mit regulärem Ausdruck

#4 Post by Jochen »

Mit grep:<pre>grep '^[^ ]* 0001 ' foo.dat</pre><li>^ bindet den RA an den Anfang der Zeile
<li>[^ ]* steht für die Folge von Nicht-Trennzeichen (also Blanks), die das erste Feld ausmachen
<li> 0001 (inkl. der Blanks darum) steht für den gesuchten Inhalt des zweiten Feldes

Und wenn man's mit dem awk macht, sollte man dessen Features auch ausnutzen:<pre>awk '$2 == "0001"' foo.dat</pre>reicht völlig - print ist die Default-Aktion, wenn man zu einer Auswahlbedingug keine Aktion angibt. (Sorry, Eddie, konnte der Versuchung nicht widerstehen <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">)

User avatar
Eddie
Posts: 180
Joined: 22. Sep 1999 9:28
Location: Lennestadt

Re: Probleme mit regulärem Ausdruck

#5 Post by Eddie »

@Jochen

awk ist nicht so ganz mein Geschmack. Normalerweise versuche ich alles mit grep oder sed oder so... <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
Gruß
Eddie

Post Reply