grep
Se você estiver interessado apenas nos nomes dos arquivos que contêm uma string de pesquisa 1 vez, poderá usar grep
com sua opção -l
para fazer isso.
Exemplo
Digamos que eu tenha 2 arquivos cheios de números.
$ seq 100 > sample1.txt
$ seq 100 > sample2.txt
Agora, se eu pesquisar esse arquivo em busca de ocorrências da string "10".
$ grep -l 10 sample*.txt
sample1.txt
sample2.txt
Ele só retornará os arquivos que contêm uma correspondência 1 vez, mesmo se houver várias linhas correspondentes. Como prova, se eu tirar a -l
:
$ grep 10 sample*.txt
sample1.txt:10
sample1.txt:100
sample2.txt:10
sample2.txt:100
pcregrep
Se você quiser pesquisar padrões em várias linhas, use pcregrep
juntamente com sua opção -M
para várias linhas.
$ pcregrep -M "11[\n,]*.*12" sample*
sample1.txt:11
12
sample2.txt:11
12