ファイルから文字列を検索し、4行のコンテキストを報告します(一致と次の3行)。

ファイルから文字列を検索し、4行のコンテキストを報告します(一致と次の3行)。

ディレクトリ内のすべてのファイルから検索したい文字列(または文字列のリスト)があります。たとえば、ABCを検索していて、file1.txt6行目にABCが含まれている場合、ファイルに6行、7行、8行、9行が必要です。これらすべての出力を新しい出力ファイルに移動したいと思います。

ベストアンサー1

おそらくこれはうまくフィットします。grep -A(after-context)オプションを使用して、一致する行と3つの後続の行を出力します。

find . -name file\* -exec grep -A 3 ABC {} \; > result-filename

メモ:result-filenameに配置しないでくださいdirectoryname(参照:grep:入力ファイル「X」も出力されます。)。

さまざまなモードを扱います。

find . -name file\* -exec egrep -A 3 'ABC|XYZ' {} \; > result-filename

またはファイルのいくつかのパターン(Evgeny Vereshchaginのおかげで):

find . -name file\* -exec grep -A 3 -f patterns.txt {} \; > result-filename

おすすめ記事