Durchsuchen Sie Dateien nach regulären Ausdrücken und geben Sie zurück, welche Dateien Übereinstimmungen enthalten

0

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"
Julio Fong
quelle

Antworten:

4

Meinten Sie nur, um grepdie Datei (en) anstatt (nutzlos) cates / sie zu grep?

grep strings /tmp/*.txt

Das catbedeutet, dass alle *.txtDateien zu einer großen "Datei" zusammengefasst werden. Wenn Sie catmehrere Dateien haben, grepwird 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 -lOption:

grep -l strings /tmp/*.txt
slhck
quelle
Wenn Sie nach string_s_ suchen möchten (mehrere), trennen Sie diese entweder durch \|(ohne die -EOption) oder durch |(mit der -EOption), dh grep 'foo\|bar'oder grep -E 'foo|bar'.
Uwe
ack ist ein alternatives Tool, das sich hervorragend für diese Art von Dingen eignet
Ciclamino,