Nomes de arquivos e LineNumbers para os jogos de gato e grep
Pergunta
Meu código
$ *.php | grep google
Como posso imprimir os nomes de arquivos e LineNumbers ao lado de cada jogo?
Solução
grep google *.php
Se você quer para abranger muitos diretórios:
find . -name \*.php -print0 | xargs -0 grep -n -H google
(como explicado nos comentários, -H é útil se xargs vem com apenas um arquivo remanescente)
Outras dicas
Você não deveria estar fazendo
$ *.php | grep
Isso significa "executar o primeiro programa de PHP, com o nome do resto caracteres universais como parâmetros, e depois executar grep na saída".
Ele deve ser:
$ grep -n -H "google" *.php
A bandeira -n
diz-lhe para fazer números de linha, ea bandeira -H
diz-lhe para mostrar o nome do arquivo, mesmo se houver apenas arquivos. Grep será o padrão para mostrar os nomes de arquivos se houver vários arquivos que estão sendo pesquisados, mas você provavelmente vai querer certificar-se a saída é consistente, independentemente de quantos arquivos correspondência existem.
grep -RH "google" *.php
Por favor, dê uma olhada ack em http://betterthangrep.com . O equivalente em ack do que você está tentando é:
ack google --php
find ./*.php -exec grep -l 'google' {} \;
Use "man grep" para ver outros recursos.
for i in $(ls *.php); do grep -n --with-filename "google" $i; done;
find . -name "*.php" -print | xargs grep -n "searchstring"