Procura uma palavra nos arquivos na saída

0

Quando eu executo o seguinte comando:

find loanwolf/ -name '*.html' -exec grep --color -rn 'loanwolf_tags' {} +

isso me dá alguns arquivos na saída. Eu gostaria de procurar uma nova palavra nos arquivos na saída, mas não posso usar grep para fazer isso. Como eu poderia fazer isso?

    
por user8367474 26.07.2017 / 20:25

2 respostas

3

dois grep

-exec dá um verdadeiro ou falso, então

find .. -exec grep foo {} \; -exec grep bar {} \;

não pesquisará bar em um arquivo se foo não for encontrado.

\; é a velha escola (você precisa escapar de ; ), + é uma nova escola.

    
por 26.07.2017 / 20:33
0

Você pode fazer como mostrado para obter os resultados:

find loanwolf/. -type f -name '*.html' -exec grep -lHZ loanwolf_tags {} + |
xargs -r -0 grep -lH new_word

Aqui o que estamos fazendo é olhar para arquivos regulares com extensão html, nós alimentamos um monte deles para grep e procuramos por loanwolf_tags string nestes. A opção -l exibirá os nomes dos arquivos nos quais essa string é encontrada e passada adiante para xargs após anexar os nomes dos arquivos com nulo xargs .

O grep receberá esses nomes de arquivos e os dividirá no caractere nulo, recuperando assim todos os tipos de nomes de arquivos. Em seguida, o xargs irá reunir vários nomes de arquivos e alimentá-los com %code% , procurando por new_word e exibindo os nomes dos arquivos correspondentes.

    
por 27.07.2017 / 09:06

Tags