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"

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

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,
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.