Ich habe überall gesucht, aber nicht herausgefunden, wie ich einen Dateiinhalt zurückgeben kann, der mit bestimmten Wörtern oder einem regulären Ausdruck übereinstimmt.
cat /tmp/*.txt | grep "strings"
Ich habe überall gesucht, aber nicht herausgefunden, wie ich einen Dateiinhalt zurückgeben kann, der mit bestimmten Wörtern oder einem regulären Ausdruck übereinstimmt.
cat /tmp/*.txt | grep "strings"
Antworten:
Meinten Sie nur, um grep
die Datei (en) anstatt (nutzlos) cat
es / sie zu grep
?
grep strings /tmp/*.txt
Das cat
bedeutet, dass alle *.txt
Dateien zu einer großen "Datei" zusammengefasst werden. Wenn Sie cat
mehrere Dateien haben, grep
wird nur eine Eingabe ohne echten Namen angezeigt. Alle Dateien werden zusammengefasst und durch die Pipe geleitet. Dadurch erhalten Sie nicht die Dateinamen, da Sie im Grunde alles zu einer großen Datei gemacht haben.
Wenn Sie nur die grep
übereinstimmenden Dateien zurückgeben möchten , verwenden Sie die -l
Option:
grep -l strings /tmp/*.txt
\|
(ohne die-E
Option) oder durch|
(mit der-E
Option), dhgrep 'foo\|bar'
odergrep -E 'foo|bar'
.