grep
dirá a si mesmo se você fornecer os nomes dos arquivos em vez de fornecer o conteúdo deles:
grep error cluster-2010*.log
Eu tenho um monte de logs e eu não quero olhar em cada um deles individualmente, mas em vez disso eu gostaria de executar cat cluster-2010*.log | grep error
, mas o problema é que, mesmo que esteja me devolvendo o que eu quero, eu não tem uma pista de qual arquivo .log está contendo o erro que o comando anterior estava exibindo.
Como posso resolver isso?
grep
dirá a si mesmo se você fornecer os nomes dos arquivos em vez de fornecer o conteúdo deles:
grep error cluster-2010*.log
Esse é um Uso inútil do gato . Basta fazer:
grep error cluster-2010*.log
Você receberá uma saída semelhante a esta:
bil@daemon:foo %>grep error cluster-2010*.log
cluster-20105.log:error
cluster-20107.log:error
Se você não quer um monte de saídas, por exemplo, se eu obtiver o auth.log para falha e ele cusar algumas centenas de linhas, você pode usar:
grep -l error cluster-2010*.log
que não imprimirá nada se o resultado for falso (não contém o valor) ou o nome do arquivo se existir.
Se você quiser descobrir qual número de linha a palavra que está procurando está ativada, use:
grep -n error cluster-2010*.log
Tags grep