Ich habe Probleme bei der Verwendung von grep. Auf meinem Computer ist Ubuntu 18.04 unter Win 10 installiert. Bei den einfachsten Befehlen friert es ein. Ich kann es abbrechen und es erstellt eine neue Datei, wenn ich möchte, aber es schreibt nichts hinein.
$ mkdir test
$ cd test
$ ls
$ sudo grep "Werk!" > new
^C
$ ls
new
$ cat new
Übersehe ich etwas Offensichtliches?
Antwort1
Ja. Sie führen ein Grep-Verfahren mit STDIN durch, sodass es ewig hängt und auf eine Eingabe wartet, die nie kommt.
Sie wollten wahrscheinlich "." als Argument für grep und -r (rekursiv) einschließen, um das aktuelle Verzeichnis zu grepen.
grep -r hello .
Andere Leute finden das Standardverhalten auch grep
nicht optimal, daher gibt es grep
Alternativen, bei denen dieses Problem nicht auftritt. Zum Beispiel dieSilbersucherrichtet sich nach dem Namen ag
und durchsucht standardmäßig das aktuelle Verzeichnis rekursiv, Ihre Vermutung bezüglich der korrekten Syntax wäre also richtig gewesen ag
:
ag hello
ag
standardmäßig wird auch eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt, es sei denn, Sie geben einen Großbuchstaben ein, was wohl auch das ist, was Sie wollen. Außerdem wird standardmäßig Farbe verwendet und die leistungsstärkere PCRE-Regex-Engine (wie Perl) anstelle der schwächeren, älteren Glob-Style-Übereinstimmung, die grep
standardmäßig verwendet wird.
grep
Aufgrund derartiger Usability-Probleme sollten Sie nach Möglichkeit eine neuere Alternative verwenden und diese nur nutzen grep
, wenn es unbedingt sein muss. grep
Es ist dennoch nützlich, ein Standardtool für Shell-Skripte zu kennen, das Sie gemeinsam nutzen und als Standarddienstprogramm auf jeder Linux-Box nutzen können, bei der Sie sich anmelden.
„ripgrep“ und „ack“ sind weitere gute Alternativen zu grep.
Antwort2
Sie haben das zweite Befehlsargument vergessen grep
, das die Datei angibt, in der Sie nach dem Muster suchen.
Bitte FolgeMann 1 grepum Hilfe zu erhalten grep
.
Antwort3
Vielleicht möchten Sie Texte in der Datei „Neu“ aufzeichnen. Dies können Sie mit „Echo Texte > Neu“ tun.