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
?
grep -F
) genau wie die meisten anderen Befehle in bash
.
bash
"- grep
ist kein "befehl in bash
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 unterscheiden bash
Vor grep
(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 erweitern grep -f file1.txt file2.txt file3.txt
, und grep
werde interpretieren file1.txt
als die Datei, aus der Suchmuster gelesen werden sollen, und file2.txt
und file3.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
(benutzen set +x
um dies später wieder rückgängig zu machen). Dann renne grep -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 Argumente grep
bekommt wirklich.
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.