Talvez isso sirva. Faz uso da opção grep -A
(after-context), para produzir a linha correspondente e as 3 linhas subsequentes.
find . -name file\* -exec grep -A 3 ABC {} \; > result-filename
NOTA: você não deve colocar result-filename
em directoryname
. (Veja: grep: arquivo de entrada 'X' também é a saída ).
Para cobrir vários padrões:
find . -name file\* -exec egrep -A 3 'ABC|XYZ' {} \; > result-filename
Ou vários padrões de um arquivo (obrigado Evgeny Vereshchagin):
find . -name file\* -exec grep -A 3 -f patterns.txt {} \; > result-filename