Localiza uma string em uma pasta e o arquivo de onde veio?

2

Estou tentando encontrar algumas palavras-chave no meu diretório / var / log, portanto, usando

cd / var / log cat * | grep palavra-chave

Acho que a string está nesse diretório e vejo as linhas em que ela existe, mas não sei de qual arquivo ela veio. Como posso localizar a string e ver o arquivo dela?

    
por wjimenez5271 23.07.2011 / 21:22

2 respostas

4

grep pode usar nomes de arquivo como parâmetro.

cd /var/log
grep keyword *

E se você grep de mais de um arquivo por vez, o nome de arquivo do qual a linha veio será impresso junto com a linha encontrada.

Se você fornecer apenas 1 nome de arquivo para o grep, mas quiser mostrar o nome no arquivo, passe a opção -H para o grep - útil se você usar um globbing (por exemplo, *.txt ) no comando linha e não sei quantos arquivos serão pesquisados).

Se você quiser mostrar números de linha também, essa é a opção -n .

    
por 23.07.2011 / 21:27
0

find /var/log -type f | xargs grep -H

ou

find /var/log -type f -name \*log | xargs grep -H

ou (muito mais lento que xargs)

find /var/log -type f -exec grep -H {} \;

e para pontos de bônus, grep -i tornará a busca insensível ao caso (mas mais lenta)

    
por 24.07.2011 / 00:47