7 votes

Grep through subdirectories

Ajouter une chaîne de caractères à un fichier texte à partir du terminal

J'ai regardé ce fil. La solution (numéro 2, avec ls grep ) fonctionne parfaitement pour les fichiers appelés .txt dans le répertoire actuel. Et si je voulais faire une recherche dans un répertoire et ses sous-répertoires ?

Par exemple, je dois effectuer une recherche dans un répertoire qui a de nombreux sous-répertoires, et ceux-ci ont de nombreux sous-répertoires, etc.

Je suis nouveau sur Linux, désolé, donc je ne suis pas sûr que ce soit le bon endroit.

7voto

January Points 33673

Utilisez l'option -R (équivalente à --recursive ) à grep.

EDIT : après avoir lu le fil de discussion, dans la combinaison ls /mydata | grep txt$ vous n'avez pas besoin de grep récursif, mais ls récursif . Vous ne greperez pas les fichiers ; vous greperez la sortie de ls, qui se trouve être une liste de fichiers.

"Recursive ls" s'appelle find :-)

find /mydata -type f | grep txt$

ou, mieux,

find /mydata -type f -name '*.txt'

4voto

The Disintegrator Points 1668

En fait, j'ai résolu le problème en utilisant find . type -f au lieu de ls

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