Возможно, это подходит . Использует параметр grep -A
(after-context) для вывода совпадающей строки и трех последующих строк.
find . -name file\* -exec grep -A 3 ABC {} \; > result-filename
ПРИМЕЧАНИЕ: Вы не должны помещать имя-результата
в имя-каталога
. (См .: grep: входной файл 'X' также является выходным ).
Чтобы охватить несколько шаблонов:
find . -name file\* -exec egrep -A 3 'ABC|XYZ' {} \; > result-filename
Или несколько шаблонов из файла (спасибо Евгению Верещагину):
find . -name file\* -exec grep -A 3 -f patterns.txt {} \; > result-filename