複数行をgrepする方法

複数行をgrepする方法

2行を含むすべてのファイルを検索したい:abcdef。例えば、

xxx
111abc
yyy
222def333

このファイルにはとがgrep含まれているため、キャプチャする必要があります。abcdef

どうすればいいですか?私はgrep -rE 'abc.*def' /dir/成功せずにこれを試しました。

ベストアンサー1

grepより単純化されたパターン()--null-dataバージョンは、-z次のように欲張りな数量子を使用して、必要な数の新しい行を一致させることです。

grep -ozP  'abc(.*\n.*){1,}def' file

またはpcregrepを使用してください(提供:PCREプロジェクト)はデフォルトでPCRE正規表現機能を使用します。-M複数行一致モードを有効にします。

pcregrep -M 'abc(.*\n.*){1,}def' file

おすすめ記事