Probleme mit regulärem Ausdruck

Antworten
Nachricht
Autor
Robert

Probleme mit regulärem Ausdruck

#1 Beitrag von Robert » 15. Nov 2000 17:39

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 Beitrag von wolfgang » 15. Nov 2000 18:14

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

Benutzeravatar
Eddie
Beiträge: 180
Registriert: 22. Sep 1999 9:28
Wohnort: Lennestadt

Re: Probleme mit regulärem Ausdruck

#3 Beitrag von Eddie » 15. Nov 2000 23:28

Hi!

So sollte es funktionieren:

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

Jochen

Re: Probleme mit regulärem Ausdruck

#4 Beitrag von Jochen » 16. Nov 2000 8:36

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">)

Benutzeravatar
Eddie
Beiträge: 180
Registriert: 22. Sep 1999 9:28
Wohnort: Lennestadt

Re: Probleme mit regulärem Ausdruck

#5 Beitrag von Eddie » 16. Nov 2000 19:08

@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

Antworten