Linux und Unix-ähnliche Shells mögen bash
Ermöglichen Sie die Verwendung von Globs zur Annäherung der Dateinamen und zur Erleichterung der Dateisuche. Mir ist der Platzhalter glob (*) bekannt. Welche anderen Globs gibt es in bash
das kann ich mit gebrauchen grep
?
1
grep
verwendet reguläre Ausdrücke; diese sind anders als Klumpen. Etwasgrep
Implementierungen verwenden Globs mit Optionen wie--exclude=GLOB
Ich denke jedoch, dass diese Optionen von POSIX nicht benötigt werden. Das solltest du also nicht annehmengrep
weiß etwas über Klumpen.grep -F
) genau wie die meisten anderen Befehle inbash
.bash
"-grep
ist kein "befehl inbash
msgstr "" "aber eine separate ausführbare Datei, die Sie ohne Shell ausführen können, wenn Sie wissen, wie. Sie sollten die um erweiterten Globs sorgfältig unterscheidenbash
Vorgrep
(oder jeder Befehl, der in einer Shell aufgerufen wird) wird sogar von Globs, regulären Ausdrücken oder Ähnlichem ausgeführt, die vom Befehl selbst unterstützt werden.grep
in der Argumentliste. Somit,grep -f *.txt
wird sich so etwas wie erweiterngrep -f file1.txt file2.txt file3.txt
, undgrep
werde interpretierenfile1.txt
als die Datei, aus der Suchmuster gelesen werden sollen, undfile2.txt
undfile3.txt
als Dateien für die Suche nach diesen Mustern.grep
Hat er überhaupt keine Ahnung, dass es sich um ein Glob-Muster handelt, weiß er nur, dass es die Zeichenfolgen "-f", "file1.txt", "file2.txt" und "file3.txt" als Argumente enthält.set -x
(benutzenset +x
um dies später wieder rückgängig zu machen). Dann rennegrep -f *.txt 1>/dev/null 2>/dev/null
(Umleitungen dienen nur dazu, den Befehl selbst zum Schweigen zu bringen). Was auch immer Sie danach sehen+
ist der eigentliche Befehl. Versuchen Sie es in Verzeichnissen mit 0, 1 oder mehr passenden Dateien. Sie werden sehen, welche Argumentegrep
bekommt wirklich.