grep -r "Muster" reagiert nicht


7

Die grep-Version ist 2.10 und reagiert auch bei kleinen Dateien nicht, während dieselbe Zeile auf einem anderen Ubuntu-Computer einwandfrei funktioniert, wenn die grep-Version 2.16 ist ...

Der Befehl lautet:

grep -r "myVariable"

Anstatt nichts oder einige Dateinamen und Zeilen wie folgt zurückzugeben:

path/to/file.c:     myVariable++;
path/to/file2.c:    int myVariable;

Die Befehlsshell bleibt beschäftigt und ich muss sie mit stoppen ctrl+C

Was ist das Problem oder wie untersuche ich es?


2
Wie lautet der Befehl, ohne anzugeben, wie kann man erwarten, dass Ihnen jemand hilft?
Looserof7

Der Befehl ist im Titel, Ok, ich werde bearbeiten
Makan Tayebi

Und natürlich tritt dort ein Muster auf.
Makan Tayebi

1
Sie sollten angeben, welche Datei (en) nach dem Muster gesucht werden sollen. Sie können grep "alias" ~/.bashrcPlatzhalter oder eine einzelne Datei verwenden, z. B. sollten einige Ausgabezeilen erzeugt werden (in der Standardeinstellung .bashrc sind einige Aliase enthalten).
Sudodus

Dies bedeutet, dass die Version 2.10 von grep diese Funktion nicht unterstützt.
Pilot6

Antworten:


18

Da Sie keine Eingabedatei angeben, grepwarten Sie darauf, dass Sie Eingabedaten für die Standardeingabe bereitstellen.

Das Verhalten, bei -rdem standardmäßig das aktuelle Verzeichnis verwendet wird, ist nicht standardisiert ( tatsächlich -rselbst ) und wurde in GNU grep 2.11 eingeführt.


Kein Pfad, nur: (Standardeingabe):
Josef Klimuk

1

Ich denke, Ihnen fehlt der Dateiname. Auf der Manpage des grep sollte die Syntax wie folgt lauten:

grep [OPTIONS] PATTERN [FILE...]

Ex : grep -r pattern your_directory_path

Ich benutze grep (GNU grep) 2.16. Es funktioniert bei mir nicht, wenn ich keinen Dateinamen angegeben habe.
Rajesh Keladimath
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.