ファイルがあるとしましょう:
# 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