grep liste jede Datei einmal auf

8

Ich suche Text in Dateien, aber drei sind viele Dateien, und der gesuchte Text wird mehrmals in einer Datei angezeigt. Wie kann ich eine Liste von Dateien erhalten, die gesuchten Text enthält, wobei jede Datei nur einmal aufgeführt wird?

Gast1624
quelle

Antworten:

15
grep -l xyz file*

Dabei ist xyz das Suchmuster und file * die Liste der zu durchsuchenden Dateien

Guru
quelle
1

grep -l LIST PATTERNist der Weg zu gehen. Alternativ könnte man xargsdas Gleiche tun:

xargs grep "My Search Pattern"  < input.txt 

xargsDies ist besonders nützlich, wenn Sie grepmehrere Dateinamen verwenden möchten, die von einer Pipe übergeben wurden, z. B.:

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