web-dev-qa-db-fra.com

grep liste chaque fichier une fois

Je cherche du texte dans des fichiers, mais trois représentent beaucoup de fichiers et le texte recherché apparaît plusieurs fois dans un fichier. Comment puis-je recevoir une liste de fichiers contenant du texte recherché avec chaque fichier répertorié une seule fois?

8
Guest1624
grep -l xyz file*

où xyz est le modèle de recherche et fichier * est la liste des fichiers dans lesquels rechercher

15
Guru

grep -l LIST PATTERN est la voie à suivre. Sinon, vous pouvez utiliser xargs pour faire la même chose:

xargs grep "My Search Pattern"  < input.txt 

xargs est particulièrement utile lorsque vous souhaitez utiliser grep sur plusieurs noms de fichiers transmis à partir d'un canal, par exemple:

find ~/Documents ~/bin -print0 | xargs -0 grep 'Search Term'
1
Sergiy Kolodyazhnyy