Eu tenho um monte de arquivos .html em um diretório. Quero examinar cada arquivo e corresponder a um padrão (MD5). Tudo isso é fácil o suficiente. O problema é que preciso saber em qual arquivo a correspondência foi encontrada.
cat *.html | grep 75447A831E943724DD2DE9959E72EE31
Retorna apenas o conteúdo da página HTML onde a correspondência foi encontrada, mas não informa o arquivo em que foi encontrada. Como posso o grep me mostrar o nome do arquivo em que minha correspondência é encontrada?
command-line
grep
Seja meu amigo
fonte
fonte
Respostas:
fonte
-H
não seja necessário.cat
.cat
significa concatenar. Se você concatenar todos os arquivos juntos antes de passá-losgrep
,grep
veja apenas um grande arquivo de entrada padrão e não poderá (além de adivinhar) devolver qualquer informação sobre os arquivos únicos. Vejo?. Cyrus, que tal explicar isso na resposta?Eu uso esse o tempo todo para procurar arquivos que contenham uma string, RECURSIVELY em um diretório (que significa atravessar qualquer subpasta subpasta)
grep -Ril "yoursearchtermhere"
R
é pesquisar recursivamente (seguindo links simbólicos)i
é torná-lo insensívell
é apenas para listar o nome dos arquivos.portanto, responder à sua pergunta
grep -l '75447A831E943724DD2DE9959E72EE31' *.html
serve, mas você pode simplesmentegrep -Ril '75447A831E943724DD2DE9959E72EE31'
procurar essa sequência, sem distinção entre maiúsculas e minúsculas, em qualquer arquivo em qualquer subpastafonte
stdin
( grep: warning: pesquisa recursiva de stdin , qualquer que seja a entrada recursiva de stdin significaria :-). Em outras palavras:grep -Ril 'texttofind' *
grep -RiH 'pattern'
nome de arquivos mostra e combinados linhaVocê pode tentar isso
fonte
Alternativa para
O procedimento acima irá procurar recursivamente na pasta e nas subpastas e imprimir o caminho do arquivo ...
fonte
A resposta postada por Cyrus é absolutamente adequada e é The Right Way TM ,
grep
se precisarmos apenas encontrar arquivos . Quando os nomes de arquivos precisam de análise ou operações adicionais nos nomes de arquivos correspondentes, podemos recorrer ao uso dewhile
loop comif
instrução. Aqui está um exemplo em que a lista de nomes de arquivos vem da estruturafind
+ usada com mais frequênciawhile
para análise segura de nomes de arquivos.fonte
grep
a--include
bandeira de.