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?

Makan Tayebi
quelle
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.

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