Encontre todos os arquivos e use o resultado no padrão de pesquisa grep

Encontre todos os arquivos e use o resultado no padrão de pesquisa grep

Encontrei um exemplo que usa uma combinação de find e xarg ou exec para pesquisar um padrão específico no resultado, veja o linkaqui.
No entanto, gostaria de usar o resultado do comando find e usá-lo como padrão de pesquisa para grep. Algo como o comando abaixo, mas não tenho certeza de como construí-lo.

find . -name "*.cgi" -printf '%f\n' | cut -d. -f1 | xarg grep 'find_result' *.html

Responder1

Assumindo GNU grepe assumindo que seus nomes de arquivos não possuem novas linhas incorporadas:

find . -name '*.cgi' -printf '%f\n' | cut -d. -f1 | sort -u | fgrep -f - *.html

Responder2

Você não precisa xargsaqui, basta grepler a lista de padrões do stdin:

com GNU encontre:

find . -name '*cgi' -printf '%f\n' | grep -f - *html

de outra forma:

find . -name '*cgi' | cut -f2- -d/ | grep -f - *html

informação relacionada