Dis que j'ai un fichier:
# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Je veux seulement savoir quels mots apparaissent après "foobar", je peux donc utiliser cette regex:
"foobar \(\w\+\)"
Les parenthèses indiquent que j’ai un intérêt particulier pour le mot juste après foobar. Mais quand je fais un grep "foobar \(\w\+\)" test.txt
, je reçois les lignes entières qui correspondent à la regex entière, plutôt que juste "le mot après foobar":
foobar bash 1
foobar happy
Je préférerais de beaucoup que le résultat de cette commande ressemble à ceci:
bash
happy
Existe-t-il un moyen d'indiquer à grep de ne générer que les éléments correspondant au groupe (ou à un groupe spécifique) dans une expression régulière?
perl -lne 'print $1 if /foobar (\w+)/' < test.txt