Como pesquisar por conteúdo no Ubuntu

8

Eu gostaria de pesquisar em todo o servidor por conteúdo. (arquivo de texto)

Quando tento grep -rl "texto aqui", ele congela.

Como você faria?

E quanto tempo geralmente leva?

webnat0
fonte

Respostas:

17

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

Tente grep -r "test" directory.

ChrisJ
fonte
7
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

O que pode ser explicado em linguagem humana como:

  1. encontrar
  2. Começando de /
  3. em todos os arquivos denominados * .txt (as aspas devem ignorar a interpretação do shell)
  4. com os hits resultantes, execute o seguinte
  5. grep "teste aqui"
  6. no arquivo {}
  7. final do exec (\;) escapou do final da instrução
  8. imprima os arquivos que correspondem
  9. redirecione as mensagens de erro no coletor (já que você pode não ser root, caso contrário, basta sudo).
Alain Pannetier
fonte
diz "find: argumento ausente para 'grep'"
webnat0
trabalha aqui. como você substituiu "test here"?
Alain Pannetier
11
@ Daeyun: Existe apenas uma barra invertida.
Pausado até novo aviso.
11
@Dennis. Depende da sua língua materna. No Japão e na Coréia, existem vários conjuntos de caracteres nos quais a barra invertida também é renderizada como o sinal Yen ou Wong (0x5c). Além disso, dê uma olhada em u + 20E5. No passado, havia várias explorações no IIS nas quais era possível explorar todo o disco (onde o IIS tinha sua raiz) de um PC apenas misturando barras reais e falsas (outro unicode equivalente convertido no plano ascii) e pelo menos um usando sobreposição solidus reversa.
Alain Pannetier
0

você esquece de especificar que tipo de arquivo deseja pesquisar,
faça o login como root

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

isso levará muito tempo e você poderá coletar os resultados posteriormente, verificando /tmp/match.txt

ajreal
fonte
0

O comando a seguir pesquisa 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" {} \;


fonte