Como grep o resultado de um grep?

4

Eu preciso de alguns arquivos para ver quais contêm uma determinada palavra:

grep -l word *

Em seguida, preciso fazer uma busca na lista de arquivos para ver quais contêm uma palavra diferente. O caminho mais fácil provavelmente seria escrever um roteiro, mas eu não sei exatamente como trabalhá-lo.

    
por Tim 22.11.2015 / 19:05

3 respostas

4
grep -l word * | xargs grep word2

O Xargs executará o segundo grep sobre cada arquivo do primeiro grep.

Atenciosamente.

    
por 23.11.2015 / 06:03
-1
grep -l word1 $(grep -l word2 *)

ou talvez por uma das duas palavras na mesma linha:

grep -w 'word1\|word2' *

veja aqui

    
por 22.11.2015 / 19:32
-1

Se você precisar encontrar arquivos que contenham uma palavra e, em seguida, filtrar os arquivos que contêm outra palavra, use uma sequência de comandos como esta:

grep word * | awk -F ':' '{print $1}'|uniq | xargs grep word2
  • grep word * - mostrará todos os arquivos contendo "word", o nome do arquivo será o primeiro da lista.
  • awk -F ':' '{print $1}' - imprimirá apenas o nome do arquivo dos seus resultados
  • uniq - se certificará de não imprimir o nome do arquivo mais de uma vez.
  • xargs grep word2 - pesquisará novamente na lista de arquivos que você obteve.
por 23.11.2015 / 00:06

Tags