Mögliches Duplikat:
Wie kann ich Quelldateien nach Text durchsuchen?
Wie lautet der Befehl zum rekursiven Suchen nach bestimmten Texten in bestimmten Dateitypen im aktuellen Verzeichnis?
Mögliches Duplikat:
Wie kann ich Quelldateien nach Text durchsuchen?
Wie lautet der Befehl zum rekursiven Suchen nach bestimmten Texten in bestimmten Dateitypen im aktuellen Verzeichnis?
ack-grep
, du kannst die Beispiele in der Frage als gestartet verwenden (wie ich schon sagte), also diefind | xargs | grep
Zeilen. Für die spezifische Ausgabeman grep
ist es immer nützlich zu lesen.grep -r --include=*.<type> "<string>" .
, was funktioniert hat. Leider ist die Manpage beim Erwähnen des abschließenden Punkts nicht sehr einfach.Antworten:
Dieser Befehl führt find im lokalen Verzeichnis (.) Für alle Dateien mit Namen aus, die dem Muster * .extension entsprechen, und führt dann grep für "string" für die Ergebnisse der Suche aus . Beachten Sie, dass find von Natur aus rekursiv ist. Solange Sie die gewünschten Dateien von den Dateien unterscheiden können, die nicht auf dem Namen basieren, sollte dies für Sie funktionieren.
quelle
print0
Option verwenden, um sicherer zu sein.find -print0
wird nicht helfen, auch verwendenxargs -0
:find . -type f -name "*.ext" -print0 | xargs -0 grep "string"
Um den Dateinamen, die Zeilennummer in der angegebenen Datei und die Zeile aufzulisten, wird der Text angezeigt:
Es wird nur im aktuellen Verzeichnis ausgeführt, aber es wird es schön für Sie formatieren.
quelle