Powiedz, że mam plik:
# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Chcę tylko wiedzieć, jakie słowa pojawiają się po „foobar”, więc mogę użyć tego wyrażenia regularnego:
"foobar \(\w\+\)"
Nawiasy wskazują, że szczególnie interesuję się tym słowem zaraz po foobar. Ale kiedy robię a grep "foobar \(\w\+\)" test.txt
, otrzymuję całe wiersze, które pasują do całego wyrażenia regularnego, a nie tylko „słowo po foobar”:
foobar bash 1
foobar happy
Wolałbym, aby wynik tego polecenia wyglądał następująco:
bash
happy
Czy istnieje sposób, aby powiedzieć grepowi, aby wyświetlał tylko elementy pasujące do grupy (lub określonej grupy) w wyrażeniu regularnym?
perl -lne 'print $1 if /foobar (\w+)/' < test.txt