grep: Leerzeichen am Zeilenanfang werden nicht gefunden

1

1970

Hallo,
habe eine Datei, wo am Anfang der Zeile drei Leerzeichen sind und die Zeichenfolge xyz. Ich möchte diese Zeile finden, indem ich nach beliebig vielen Leerzeichen am Zeilenanfang und dann xyz suche, aber es geht nicht mit dem ^:

Code:
:~$ cat test.txt 
   xyz
:~$ grep '[:blank:]*xyz' test.txt 
   xyz
:~$ grep '^[:blank:]*xyz' test.txt 
:~$

Hat jemand eine Erklärung für dieses Phänomen und eine Lösung?
 
Hi,

das '*' bedeutet hier regx "kein oder viele vorhergehende Zeichen".

Schau dir mal das an:

Code:
> cat test.txt
zeichen ohne frei
 zeichen mit 1x frei
   zeichen mit 3x frei

> grep '^[\t ]*zeichen' test.txt 
zeichen ohne frei
 zeichen mit 1x frei
   zeichen mit 3x frei

> grep '^[\t ]\+zeichen' test.txt 
 zeichen mit 1x frei
   zeichen mit 3x frei

> grep '^ \{3\}zeichen' test.txt 
   zeichen mit 3x frei

Psyjo
 
Probiers mal so (Schnellschuss!):

Code:
grep '^[[:space:]]*xyz' test.txt
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Welches Linux/Unix für ehemaligen OSX Nutzer?

LinuxDistribution: Bunsenlabs (Debian 8.2 mit Openbox)

mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

.cfg Datei Analysieren und Zeilen Stellenweise abändern

Zurück
Oben