web-dev-qa-db-fra.com

Comment grep un mot dans des fichiers xml dans un dossier

Je sais que je peux utiliser grep pour trouver un mot dans tous les fichiers présents dans un dossier comme celui-ci

grep -rn core .

Mais mon répertoire actuel a de nombreux sous-répertoires et je veux juste rechercher dans tous les fichiers xml présents dans le répertoire actuel et tous ses sous-répertoires. Comment puis je faire ça ?

J'ai essayé

grep -rn core *.xml // Does not work

Mais il recherche uniquement les fichiers xml présents dans le répertoire courant. Il ne le fait pas récursivement.

15
sachinjain024

Essayez l'option --include

grep -R --include="*.xml" "pattern" /path/to/dir

Référence: Grep Inclure uniquement * Modèle de fichier .txt lors de l'exécution du mode récursif

33
Chris Maes

Utilisez find:

find /path/to/dir -name '*.xml' -exec grep -H 'pattern' {} \;
3
choroba

J'utilise cela souvent:

grep 'pattern' /path/to/dir/**/*.xml

ÉDITER:

avec zsh

2
Kent