Скажи, у меня есть файл:
# file: 'test.txt'
foobar bash 1
bash
foobar happy
foobar
Я только хочу знать, какие слова появляются после "foobar", поэтому я могу использовать это регулярное выражение:
"foobar \(\w\+\)"
Скобки указывают, что у меня есть особый интерес к слову сразу после foobar. Но когда я делаю a grep "foobar \(\w\+\)" test.txt
, я получаю целые строки, которые соответствуют всему регулярному выражению, а не просто «слово после foobar»:
foobar bash 1
foobar happy
Я бы предпочел, чтобы выходные данные этой команды выглядели так:
bash
happy
Есть ли способ сказать grep выводить только элементы, которые соответствуют группировке (или определенной группировке) в регулярном выражении?
perl -lne 'print $1 if /foobar (\w+)/' < test.txt