Como pesquisar por conteúdo no Ubuntu

8

Gostaria de pesquisar todo o servidor pelo conteúdo. (arquivo de texto)

Quando eu tento o grep -rl "text here", ele congela.

Como você faria isso?

E quanto tempo costuma demorar?

    
por webnat0 19.02.2011 / 20:41

4 respostas

16

Você precisa especificar um arquivo ao usar o comando grep . Com o comando que você está usando, você está pesquisando na entrada padrão ...

Experimente grep -r "test" directory .

    
por 19.02.2011 / 20:44
7
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

O que pode ser explicado em humanos como:

  1. encontre
  2. a partir de /
  3. em todos os arquivos chamados * .txt (aspas são para ignorar a interpretação da shell)
  4. com os hits resultantes, faça o seguinte
  5. grep "teste aqui"
  6. no arquivo {}
  7. end of exec (\;) fim da instrução com escape
  8. imprima os arquivos que correspondem a
  9. redireciona mensagens de erro no sumidouro (já que você pode não ser root, caso contrário apenas sudo).
por 19.02.2011 / 20:43
0

você esquece de especificar que tipo de arquivos deseja pesquisar,
certifique-se de logar como root

cd /
grep -rl "text here" *  > /tmp/match.txt

isso vai levar muito tempo, e você pode coletar os resultados mais tarde, marcando /tmp/match.txt

    
por 19.02.2011 / 20:45
0

O comando a seguir procura todos os arquivos que terminam com .txt no diretório de trabalho atual e em todos os subdiretórios:

find . -type f -name '*.txt' -exec grep -Hn "text here" {} \;

    
por 19.02.2011 / 20:45