Unterschiede im Regularen Ausdruck bei grep -P und grep -E

20/08/2008 - 15:02 von Roman Klinger | Report spam
Hallo,

ich moechte gerne ein "grep" nur auf einer bestimmten Spalte einer Datei
ausfuehren. Die Datei sieht so aus:

-
1 4 3 4
1 4 3 A 4
1 4 3 3
-


Wenn ich nun alle Zeilen haben moechte in denen die vierte Spalte mit
'4' beginnt, komme ich mit

grep -P "^[^\t]\t[^\t]\t[^\t]\t4" test.dat

zum Ziel. Ich haette aber erwartet, dass auch

grep -E "^[^\t]\t[^\t]\t[^\t]\t4" test.dat

funktioniert, allerdings gibt's da keine Ausgabe.


Ich vermute daher, dass '\t' unterschiedlich interpretiert wird. Kann
mir das jemand erklaeren?


Danke und Gruss,
Roman
 

Lesen sie die antworten

#1 Stefan Tomanek
20/08/2008 - 15:20 | Warnen spam
Roman Klinger schrieb:
ich moechte gerne ein "grep" nur auf einer bestimmten Spalte einer Datei
ausfuehren. Die Datei sieht so aus:



Dann nimm doch lieber awk, der ist für sowas gemacht:

awk '$4 ~ "^4" {print $0}'

GPG available and welcome
http://stefans.datenbruch.de/

Ähnliche fragen