grep listet jede Datei einmal auf

grep listet jede Datei einmal auf

Ich suche in Dateien nach Text, aber drei sind eine Menge, und der gesuchte Text kommt in einer Datei mehrmals vor. Wie kann ich eine Dateiliste erhalten, die den gesuchten Text enthält und in der jede Datei nur einmal aufgeführt ist?

Antwort1

grep -l xyz file*

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

Antwort2

grep -l LIST PATTERNist der richtige Weg. Alternativ könnte man xargsdasselbe tun mit:

xargs grep "My Search Pattern"  < input.txt 

xargsist besonders nützlich, wenn Sie es auf mehrere Dateinamen anwenden möchten, grepdie von einer Pipe übergeben werden, zum Beispiel:

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

verwandte Informationen