Welche Globs kann ich mit grep in bash verwenden?

1

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?

Hashim
quelle
2
grep verwendet reguläre Ausdrücke; diese sind anders als Klumpen. Etwas grep 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 annehmen grep weiß etwas über Klumpen.
Kamil Maciorowski
@KamilMaciorowski Mir ist der Unterschied zwischen Globs und Regex bekannt, aber ich hatte den Eindruck, dass GNU grep standardmäßig Globs unterstützt (auch mit grep -F ) genau wie die meisten anderen Befehle in bash.
Hashim
2
"genau wie die meisten anderen Befehle in 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.
Kamil Maciorowski
2
Die Shell erweitert die Tropfen, bevor sie an sie übergeben 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.
Gordon Davisson
1
Aufrufen 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.
Kamil Maciorowski