Angenommen, ich habe eine Datei:
# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Ich möchte nur wissen, welche Wörter nach "foobar" erscheinen, damit ich diesen regulären Ausdruck verwenden kann:
"foobar \(\w\+\)"
Die Klammern zeigen an, dass ich ein besonderes Interesse an dem Wort direkt nach foobar habe. Aber wenn ich a mache grep "foobar \(\w\+\)" test.txt
, bekomme ich die ganzen Zeilen, die dem gesamten regulären Ausdruck entsprechen, und nicht nur "das Wort nach foobar":
foobar bash 1
foobar happy
Ich würde es sehr bevorzugen, wenn die Ausgabe dieses Befehls so aussähe:
bash
happy
Gibt es eine Möglichkeit, grep anzuweisen, nur die Elemente auszugeben, die der Gruppierung (oder einer bestimmten Gruppierung) in einem regulären Ausdruck entsprechen?
perl -lne 'print $1 if /foobar (\w+)/' < test.txt