2017-02-02 3 views
2

Ich versuche Grep in einer Maschine zu verwenden, aber es funktioniert einfach nicht. Wenn ich es nach einer Pipeline verwende (zum Beispiel ps -aux | grep grep), funktioniert es (im Beispiel mit grep-Prozessen).Grep startet bei "S +" Zustand

Aber ich versuche, ein Wort in Dateien suchen, aber es beginnt nur bei S +() Zustand, egal, ob ich „grep anything“, „grep -Ril anything“ schreiben usw.

Antwort

3

Aus der Manpage:

So

grep sucht die genannten Eingabedateien (oder die Standardeingabe, wenn keine Dateien benannt ...

wenn Sie grep anything laufen, grep wird für die Standardeingabe zu warten. Sie müssen es geben entweder Datei Namen in der Befehlszeile oder Eingabe über stdin.

+0

Hmmm, das hat "teilweise" geklappt, vorher erinnere ich mich an andere Maschine wo ich auf diese Weise andere Befehle verwenden musste (kann mich nicht erinnern welche). Um nach einem Ordner zu suchen, muss ich den Ordner angeben, aber auf anderen Rechnern kann ich normalerweise "grep anything" starten und alles wird im aktuellen Pfad gesucht. Warum ist der Unterschied? Der Computer, der die Suche im aktuellen Ordner ablehnt, ist CentOS 5.6. Die andere Maschine, auf der sie gerade arbeitet, führt CentoS 7.2.1511 aus. Vielleicht ist es nur Grep Version? Vielleicht SO Vorlieben? – Phazoner

+0

Es könnte definitiv ein Unterschied in der Grep-Version sein. Ich sehe im Handbuch von grep Version 2.27: Wenn keine Eingabe angegeben ist, durchsucht grep das Arbeitsverzeichnis. wenn eine Befehlszeilenoption angegeben wird, die Rekursion angibt; Andernfalls sucht grep nach der Standardeingabe. Du könntest also nichts "auf der neueren Version" grepern, aber du könntest "grep -r irgendetwas". Passt das zu Ihrer Erfahrung? –

Verwandte Themen