Duplicata possible:
Comment puis-je grep dans les fichiers source pour du texte?
Quelle est la commande pour rechercher du texte spécifique dans des types de fichiers spécifiques, récursivement, sous le répertoire actuel?
Duplicata possible:
Comment puis-je grep dans les fichiers source pour du texte?
Quelle est la commande pour rechercher du texte spécifique dans des types de fichiers spécifiques, récursivement, sous le répertoire actuel?
ack-grep
, vous pouvez utiliser les exemples de la question comme un début (comme je l'ai dit), c'est-à-dire lesfind | xargs | grep
lignes. Pour la sortie spécifique,man grep
est toujours utile à lire.grep -r --include=*.<type> "<string>" .
, ce qui a fonctionné. Malheureusement, la page de manuel n'est pas très simple en mentionnant le point de fin.Réponses:
Cette commande exécute la recherche sur le répertoire local (.) Pour tous les fichiers dont le nom correspond au modèle * .extension, puis exécute grep pour "chaîne" sur les résultats de la recherche . Notez que find est intrinsèquement récursif. Tant que vous pouvez différencier les fichiers que vous souhaitez des fichiers dont vous ne vous basez pas sur le nom, cela devrait fonctionner pour vous.
la source
print0
option pour être plus sûr.find -print0
n'aidera pas, utilisez égalementxargs -0
:find . -type f -name "*.ext" -print0 | xargs -0 grep "string"
Pour répertorier le nom de fichier, le numéro de ligne dans le fichier spécifié et la ligne, le texte apparaît:
Il ne fonctionnera que dans le répertoire courant, mais il le formatera bien pour vous.
la source