Apenas para o caso de os arquivos serem muito grandes e fazer com que dois passes sejam caros e você queira apenas os nomes dos arquivos, usando find
+ awk
:
find . -type f -exec awk 'FNR == 1 {a=0; r=0} /AccessToken/{a=1} /Registrationrequest/{r=1} a && r {print FILENAME; nextfile}' {} +
- definimos duas variáveis de sinalização
a
er
para quando os padrões correspondentes foram encontrados, limpos no início de cada arquivo (FNR == 1
) - quando as duas variáveis são verdadeiras, imprimimos o nome do arquivo e passamos para o próximo arquivo.