ディレクトリ内のすべてのファイルから検索したい文字列(または文字列のリスト)があります。たとえば、ABCを検索していて、file1.txt
6行目に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