Assumindo que o GNU grep
e supondo que seus nomes de arquivos não tenham novas linhas incorporadas:
find . -name '*.cgi' -printf '%f\n' | cut -d. -f1 | sort -u | fgrep -f - *.html
Eu encontrei um exemplo que usa uma combinação de find e xarg ou exec para pesquisar um padrão específico a partir do resultado. ver link aqui .
No entanto, gostaria de usar o resultado do comando find e usá-lo como padrão de pesquisa para o 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
Você não precisa de xargs
aqui, você pode ter apenas grep
lendo a lista de padrões de stdin:
com o GNU find:
find . -name '*cgi' -printf '%f\n' | grep -f - *html
caso contrário:
find . -name '*cgi' | cut -f2- -d/ | grep -f - *html