Digamos que eu tenho um arquivo:
# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Eu só quero saber quais palavras aparecem depois de "foobar", para que eu possa usar este regex:
"foobar \(\w\+\)"
Os parênteses indicam que tenho um interesse especial pela palavra logo após foobar. Mas quando eu faço a grep "foobar \(\w\+\)" test.txt
, recebo as linhas inteiras que correspondem a toda a expressão regular, em vez de apenas "a palavra após foobar":
foobar bash 1
foobar happy
Eu preferiria muito que a saída desse comando fosse assim:
bash
happy
Existe uma maneira de dizer ao grep para emitir apenas os itens que correspondem ao agrupamento (ou a um agrupamento específico) em uma expressão regular?
perl -lne 'print $1 if /foobar (\w+)/' < test.txt