Como encontrar arquivos com determinado texto no Terminal

129

Eu gostaria de encontrar todos os arquivos que contenham uma certa string de texto. Como você faria isso no Terminal?

    
por Svish 13.07.2010 / 11:42

5 respostas

234
grep -r 'text goes here' path_goes_here
    
por 13.07.2010 / 11:47
24

use o spotlight

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

não se esqueça de olhar para:

man mdfind
    
por 13.08.2010 / 00:38
7
  1. Através do Ack

brew install ack ack "text goes here"

  1. Através do find

find . |grep "text goes here"

  1. Através do grep

grep -RnslI "text goes here"

    
por 03.03.2016 / 15:07
1

Você pode escolher uma das opções abaixo, dependendo do seu gosto e necessidades. Supondo que você precise procurar arquivos contendo texto - "async", recursivamente no diretório atual, você pode fazê-lo de uma das formas abaixo:

Usando o grep

Usandooack

    
por 01.06.2017 / 10:00
1

A resposta de Ignacio é ótima e me ajudou a encontrar os arquivos que contêm determinado texto. O único problema que eu estava enfrentando era que, ao executar esse comando, todos os arquivos seriam listados, incluindo aquele em que o padrão não aparecia.

No such file or directory Isto é o que eu vejo ao lado de arquivos que não contêm o padrão.

Se você adicionar -s ao comando, como em: grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH DIRECTORY] -s é usado, ele mostrará apenas quais arquivos contêm o padrão.

Da mesma forma, se grep -nr "text pattern" ./ -s ; O comando grep -nr "text pattern" [PATH OF DIRECTORY] -s é usado para imprimir o arquivo mais o número da linha e a ocorrência do padrão.

Por favor, corrija-me se meu entendimento estiver errado.

Referência : Como posso fazer o grep não imprimir erros 'Nenhum arquivo ou diretório'?

    
por 01.06.2017 / 17:27