Outils pour utilisateurs

Outils du site


shell_faire_un_grep_sur_une_tres_longue_liste_de_fichiers

tag_shell_grep_liste_fichier

Shell - Faire un grep sur une très longue liste de fichiers

La commande grep est une des plus utile dans les systèmes Unix / Linux. Mais souvent, j'ai eu comme problème d'avoir une liste de fichier trop longue. Quand on veut faire une recherche de cette façon :

$ grep mot *

si le répertoire courant contient trop de fichier, la commande ne passe pas car elle est trop longue. Du coup, j'avais pour habitude de procéder ainsi :

$ find -type f -iname '*.ext' --exec grep mot '{}' \;

Du coup de cette façon la liste complète des fichiers du répertoire n'est pas insérée dans ligne de commande et ne pose plus de problème. A part le fait que cela prend nettement plus de temps, cela pose aussi le problème que grep n'affiche pas le nom du fichier étant donné qu'il s'agit de plusieurs grep lancer un après l'autre sur un seul fichier. Pour résoudre ce problème, j'ai trouvé l'argument « -H » qui permet de forcer l'affichage du nom du fichier. Ce qui donne :

$ find -type f -iname '*.ext' --exec grep -H mot '{}' \;
shell_faire_un_grep_sur_une_tres_longue_liste_de_fichiers.txt · Dernière modification: 03/12/2010 07:27 (modification externe)