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 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
\|(ohne die-EOption) oder durch|(mit der-EOption), dhgrep 'foo\|bar'odergrep -E 'foo|bar'.