web-dev-qa-db-fra.com

Grep par sous-répertoires

Ajouter une chaîne à un fichier texte depuis un 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 en cours. Et si je voulais faire une recherche dans un répertoire et dans les sous-répertoires?

Par exemple, je dois effectuer une recherche dans un répertoire comportant de nombreux sous-répertoires, ainsi que 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

7
Kathryn

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

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

"Ls récursif" s'appelle find :-)

find /mydata -type f | grep txt$

ou mieux,

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

Je l'ai en fait résolu en utilisant find . type -f au lieu de ls

4
Kathryn