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?

Antworten:


15
grep -l xyz file*

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


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'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.