2010-07-13 09:42:08 +0000 2010-07-13 09:42:08 +0000
179
179

So finden Sie Dateien mit bestimmtem Text im Terminal

Ich möchte alle Dateien finden, die eine bestimmte Textfolge enthalten. Wie würden Sie das im Terminal machen?

Antworten (5)

299
299
299
2010-07-13 09:47:11 +0000
grep -r 'text goes here' path_goes_here
31
31
31
2010-08-12 22:38:59 +0000

Scheinwerfer verwenden

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

nicht vergessen:

man mdfind
12
12
12
2016-03-03 14:07:18 +0000
  1. Durch Ack
brew install ack 
ack "text goes here"
  1. Durch finden
find . |grep "text goes here"
  1. Durch grep
grep -RnslI "text goes here"
``` finden
4
4
4
2017-06-01 08:00:18 +0000

Sie können je nach Ihrem Geschmack und Ihren Bedürfnissen eine der folgenden Optionen wählen. Angenommen, Sie müssen nach Dateien suchen, die Text enthalten - “async”, rekursiv im aktuellen Verzeichnis, dann können Sie dies auf eine der folgenden Arten tun:

Benutzung von grep

Benutzung von ack

2
2
2
2017-06-01 15:27:29 +0000

Ignacios Antwort ist großartig und hat mir geholfen, die Dateien mit bestimmten Texten zu finden. Das einzige Problem, mit dem ich zu kämpfen hatte, war, dass beim Ausführen dieses Befehls alle Dateien aufgelistet werden würden, einschließlich einer, in der das Muster nicht auftaucht.

No such file or directory Das sehe ich neben Dateien, die das Muster nicht enthalten.

Wenn Sie dem Befehl stattdessen -s hinzufügen, wie in:grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH DIRECTORY] -s verwendet wird, zeigt er Ihnen nur an, welche Dateien das Muster enthalten.

Ähnlich verhält es sich, wenn der Befehl grep -nr "text pattern" ./ -s ; grep -nr "text pattern" [PATH OF DIRECTORY] -s verwendet wird, gibt er die Datei plus Zeilennummer und Vorkommen des Musters aus.

Bitte korrigieren Sie mich, wenn ich etwas falsch verstanden habe. Verweis: Wie kann ich erreichen, dass grep die Fehler ‘No such file or directory’ nicht ausdruckt?