- Abra um terminal.
- Instale
ack-grep
digitandosudo apt-get install ack-grep
- Altere para o diretório em que você deseja pesquisar e digite
ack-grep foo
. lista todas as correspondências em todos os arquivos nesse diretório.
Suponha que eu tenha um diretório com o nome _file e inclua dois subdiretórios como _1 e _2 e em cada um eu tenha alguns arquivos de texto. Eu quero procurar uma palavra como foo em um desses arquivos de texto. Como eu posso fazer isso? Eu quero saber quais arquivos de texto em todo o diretório contêm essa palavra?
ack-grep
digitando sudo apt-get install ack-grep
ack-grep foo
. lista todas as correspondências em todos os arquivos nesse diretório. Se você não quiser instalar software adicional, basta usar grep
no terminal. Para pesquisar recursivamente por diretórios, você pode usar a opção -r
(consulte man grep
para obter detalhes). A sintaxe que você está procurando é provavelmente:
grep -r "[STRING TO SEARCH FOR]" "[DIRECTORY TO SEARCH]"
Então, por exemplo, se eu quiser procurar pela string "asdf" em todos os arquivos em todos os subdiretórios de "/ tmp / testdir /", o comando se parece com isto:
grep -r "asdf" "/tmp/testdir/"
As aspas não são estritamente necessárias, mas se a sua string ou diretório contiver espaços em branco, você teria que mascará-los usando o caractere \ ...
Basta instalar gnome-search-tool
usando sudo apt-get install gnome-search-tool
Pesquise no traço "pesquisar arquivos" e inicie-o.
Veja a imagem abaixo:
Aproveite.
Você pode usar o recursivo grep
com o sinal -l
para imprimir apenas o nome do arquivo em vez da linha correspondente:
grep -Rl foo .
Ou você pode usar find
:
find . -type f -exec grep -l foo {} +
você pode usar extglob
e normal grep
shopt -s extglob
grep -l foo **/*