8 votes

Comment rechercher par contenu sur Ubuntu

Je voudrais rechercher sur l'ensemble du serveur par contenu. (fichier texte)

Quand j'essaie grep -rl "texte ici", cela se fige.

Comment le ferais-tu?

Et combien de temps cela prend-il généralement?

18voto

mooper Points 36

Vous devez spécifier un fichier lors de l'utilisation de la commande grep. Avec la commande que vous utilisez, vous recherchez dans l'entrée standard...

Essayez grep -r "test" répertoire.

8voto

ammoQ Points 17866
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

Ce qui peut être expliqué en langage humain comme suit :

  1. find
  2. à partir de /
  3. dans tous les fichiers nommés *.txt (les guillemets permettent d'éviter l'interprétation par le shell)
  4. avec les résultats obtenus, exécuter la commande suivante
  5. grep "test ici"
  6. dans le fichier {}
  7. fin de l'exécution (\;) fin d'instruction échappée
  8. afficher les fichiers correspondants
  9. rediriger les messages d'erreur vers /dev/null (si vous n'êtes peut-être pas root, dans ce cas il suffit de faire sudo).

0voto

Felix Elnan Points 31

Vous avez oublié de spécifier quel type de fichiers vous voulez rechercher,
assurez-vous de vous connecter en tant que root

cd /
grep -rl "texte ici" *  > /tmp/match.txt

cela va prendre beaucoup de temps, et vous pouvez récupérer les résultats plus tard en vérifiant /tmp/match.txt

0voto

La commande suivante recherche tous les fichiers se terminant par .txt dans le répertoire de travail et tous les sous-répertoires :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X