GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rechercher un mot dans tout le contenu d'un répertoire sous Linux

xargs attend une entrée dans un format qu'aucune autre commande ne produit, il est donc difficile à utiliser efficacement. Ce qui ne va pas ici, c'est que vous avez un fichier dont le nom doit être cité en entrée de xargs (contenant probablement un ' ).

Si votre grep prend en charge le -r ou -R option de recherche récursive, utilisez-la.

grep -r word .

Sinon, utilisez le -exec primaire de find . C'est la manière habituelle d'obtenir le même effet que xargs , sauf sans contraintes sur les noms de fichiers. Versions raisonnablement récentes de find permettent de regrouper plusieurs fichiers en un seul appel à la commande auxiliaire. Passer /dev/null à grep garantit qu'il affichera le nom du fichier devant chaque correspondance, même s'il est appelé sur un seul fichier.

find . -type f -exec grep word /dev/null {} +

Anciennes versions de find (sur les systèmes plus anciens ou OpenBSD, ou des utilitaires réduits tels que BusyBox) ne peuvent appeler la commande auxiliaire que sur un fichier à la fois.

find . -type f -exec grep word /dev/null {} \;

Certaines versions de find et xargs ont des extensions qui leur permettent de communiquer correctement, en utilisant des caractères nuls pour séparer les noms de fichiers afin qu'aucun guillemet ne soit requis. De nos jours, seul OpenBSD a cette fonctionnalité sans avoir -exec … {} + .

find . -type f -print0 | xargs -0 grep word /dev/null

Je suppose que vous voulez dire la première option

grep récursif, pour rechercher du contenu dans des fichiers

grep -R "content_to_search" /path/to/directory

ls récursif, pour rechercher les fichiers qui correspondent

ls -lR | grep "your_search"

Si vous avez les outils GNU (ce que vous faites si la balise Linux est exacte), vous pouvez utiliser -print0 et -0 pour contourner les problèmes habituels de cotation :

find . -type f -print0 | xargs -0 grep word

Linux
  1. Comment utiliser la commande 'find' pour rechercher plusieurs noms de fichiers (extensions) sous Linux

  2. Comment rechercher et supprimer des répertoires de manière récursive sous Linux

  3. Linux - Comment savoir pour quoi Grep dans Dmesg ?

  4. Comment rechercher un texte spécifique à l'aide de GREP sous Linux

  5. Comment rechercher des fichiers à l'aide de regex dans le script shell Linux

Comment rechercher des fichiers sous Linux avec la commande Find

Comment utiliser la commande grep sous Linux/UNIX

Comment compter les fichiers dans le répertoire sous Linux

Comment trouver une chaîne dans un fichier sous Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Comment trouver la taille totale d'un répertoire sous Linux