Di 'che ho un file:
# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Voglio solo sapere quali parole compaiono dopo "foobar", quindi posso usare questa regex:
"foobar \(\w\+\)"
Le parentesi indicano che ho un interesse speciale per la parola subito dopo il foobar. Ma quando faccio un grep "foobar \(\w\+\)" test.txt
, ottengo le intere righe che corrispondono all'intera regex, piuttosto che solo "la parola dopo foobar":
foobar bash 1
foobar happy
Preferirei di gran lunga che l'output di quel comando fosse simile al seguente:
bash
happy
C'è un modo per dire a grep di produrre solo gli elementi che corrispondono al raggruppamento (o un raggruppamento specifico) in un'espressione regolare?
perl -lne 'print $1 if /foobar (\w+)/' < test.txt