Seria melhor usar find
e passar um comando shell para -exec
:
find /path/to/files -type f -exec sh -c 'for file do
egrep -iq "déni|deni" "$file" && egrep -li "arthur" "$file"
done' sh {} +
Isso funcionaria com nomes de arquivos contendo espaços.
Dissecando o comando shell:
egrep -iq "déni|deni" "$file" && egrep -li "arthur" "$file"
Dizer que egrep -iq "déni|deni" "$file"
retornaria true se o padrão corresponder. Então, ele executaria egrep -li "arthur" "$file"
, o que listaria o arquivo se o comando this fosse compatível com o padrão especificado.
Na verdade, você nem precisa de um shell:
find /path/to/files -type f -exec egrep -iq "déni|deni" {} \; \
-exec egrep -li "arthur" {} \;
( -exec
predicados com o ;
terminator também podem ser usados como condições (com base no status de saída do comando executado)).