Escreva um script de shell que encontre-greps e produza nome de arquivo e conteúdo em uma linha
Para ver todos os arquivos php que contêm "abc", posso usar este script simples:
find . -name "*php" -exec grep -l abc {} \;
Eu posso omitir o -l e eu sou extraído alguma parte do conteúdo em vez dos nomes de arquivos como resultado:
find . -name "*php" -exec grep abc {} \;
O que eu gostaria agora é de uma versão que faça as duas coisas ao mesmo tempo, mas na mesma linha.
Produção esperada:
path1/filename1: lorem abc ipsum
path2/filename2: ipsum abc lorem
path3/filename3: non abc quod
Mais ou menos comogrep abc *
faz.
Editar: Eu quero usar isso como um script de shell simples. Seria ótimo se a saída estivesse em uma linha, assim seria possível mais grepping. Mas não é necessário que o script é apenas uma linha, eu estou colocando em um arquivo de script bash de qualquer maneira.
Editar 2: Mais tarde eu encontrei "ack", que é uma ótima ferramenta e eu uso isso agora na maioria dos casos, em vez de grep. Isso tudo e mais.http://betterthangrep.com/ Você escreveriaack --php --nogroup abc
para obter o resultado desejado