Claro, perdeu o enredo em algum lugar ao longo da linha :$
Eu tive um problema semelhante com arquivos jar, procurando por classes java. Usado para fazer algo assim: capturar a saída de cada tar tf|grep <pattern>
e, em seguida, verificar se a saída contém um valor - em caso afirmativo, nome de impressão ( $f
) e valor ( $p
):
find . -name '*.tar' -type f|while read f; do p="$(tar tf $f|egrep <pattern>)"; [ -n "$p" ] && echo -e "$f\n$p" ; p=""; done
Comutou a ordem de encontrar argumentos - mais barato ver o nome do arquivo antes do tipo de arquivo.