Скажіть, у мене є файл:
# 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