Bash Globbing Tutorial

Bash Globbing Tutorial
Bash unterstützt native reguläre Ausdrücke wie einige andere Standardprogrammiersprachen nicht. Die Bash -Shell -Funktion, die für die Übereinstimmung oder Erweiterung bestimmter Mustertypen verwendet wird, wird als Globbing bezeichnet. Globbing wird hauptsächlich zur Übereinstimmung mit Dateinamen oder der Suche nach Inhalten in einer Datei verwendet. BILKBING verwendet Wildcard -Charaktere, um das Muster zu erstellen. Die häufigsten Wildcard -Charaktere, die zum Erstellen von Globbing -Mustern verwendet werden, werden unten beschrieben.

Fragezeichen - (?)

''?'' wird verwendet, um ein einzelnes Zeichen zu entsprechen. Sie können verwenden ''?'' für mehrere Male für die Übereinstimmung mehrerer Zeichen.

Beispiel 1:

Nehmen wir an, Sie möchten diese Textdilenamen durchsuchen, deren Namen 4 Zeichen lang sind und die Erweiterung ist .txt. Sie können Kugelnmuster mithilfe von 'anwenden?'Viermal, um diese Aufgabe zu erledigen.

Ermitteln Sie die Liste aller Dateien und des Ordners des aktuellen Verzeichnisses.

$ ls -l

Führen Sie den folgenden Befehl aus, die die Dateien durchsuchen, deren Namen vier Zeichen lang und unbekannt sind.

$ ls -l ????.txt

Beispiel 2:

Angenommen, Sie möchten diese Dokumentdateien durchsuchen, deren Namen 8 Zeichen lang sind, erste 4 Zeichen sind f, o, o Und T und Erweiterung ist Dokument. Führen Sie den folgenden Befehl mit Globbing -Muster aus, um die Dateien zu durchsuchen.

$ ls -l Fuß????.Dokument

Beispiel-3:

Angenommen, Sie wissen, dass der Dateiname ist 'am besten' und Erweiterung ist 3 Zeichen lang, kenne aber die Erweiterung nicht. Führen Sie den folgenden Befehl mit Verwendung aus ''?"Suchen Sie alle Dateien mit dem Namen" Test "mit einer Erweiterung von drei Zeichen lang.

$ ls -l am besten.???

Sternchen - (*)

'*' wird verwendet, um Null oder mehr Zeichen anzupassen. Wenn Sie weniger Informationen zum Durchsuchen von Dateien oder Informationen haben, können Sie verwenden '*' im Kugelmuster.

Beispiel 1:

Nehmen wir an, Sie möchten alle Dateien von durchsuchen "PL" Verlängerung. Führen Sie den folgenden Befehl mithilfe mit '*' Diese Aufgabe zu erledigen.

$ ls -l *.Pl

Beispiel 2:

Angenommen, Sie kennen den Startcharakter des Dateinamens nur, nämlich 'A'. Führen Sie den folgenden Befehl mit '*' aus, um alle Dateien des aktuellen Verzeichnisses zu durchsuchen, dessen Namen mit gestartet werden 'A'.

$ ls -l a*.*

Beispiel-3:

Sie können '*' im Bash -Skript für verschiedene Zwecke anwenden, ohne Dateien zu durchsuchen. Erstellen Sie eine Bash -Datei mit dem Namen 'überprüfen.Sch' mit dem folgenden Skript. Hier, wenn der Benutzer eingeben 'y 'oder' y 'oder' Ja 'oder' Ja ' Dann 'bestätigt' druckt und wenn der Typ tippt 'n' oder 'n' oder 'nein' oder 'nein' Dann 'Nicht bestätigt' wird drucken.

#!/Bin/Bash
Echo "Möchten Sie bestätigen?"
Antwort lesen
Fall $ Antwort in
[Yy]*) echo "bestätigt.";;;
[Nn]*) echo "nicht bestätigt.";;;
*) Echo "Versuchen Sie es erneut.";;;
ESAC

Führen Sie das Skript aus.

$ Bash Check.Sch

Eckige Klammer - ([])

'[]' wird verwendet, um den Charakter aus dem Bereich abzustimmen. Einige der meist verwendeten Bereiche werden unten erwähnt.

Alle Großbuchstaben sind durch den Bereich als, [: obere:] oder [a-z] definiert .

Alle Kleinbuchstaben-Alphabete werden durch den Bereich als, [: niedriger:] oder [a-z] definiert.

Alle numerischen Ziffern werden durch den Bereich als, [: Ziffer:] oder [0-9] definiert.

Alle Groß- und unteren Alphabete werden durch den Bereich als, [: alpha:] oder [a-za-z] definiert.

Alle Großbuchstaben, Alphabet und Ziffern in Kleinbuchstaben und Ziffern werden durch den Bereich als, [: Alnum:] oder [a-za-z0-9] definiert

Beispiel 1:

Führen Sie den folgenden Befehl aus, um alle Dateien und Ordner zu durchsuchen, deren Name enthält P oder Q oder R oder S.

$ ls -l [p -s]*

Beispiel 2:

Führen Sie den folgenden Befehl aus, um alle Dateien und Ordner zu durchsuchen, deren Name mit einer beliebigen Ziffer von 1 bis 5 beginnt.

$ ls -l [1-5]*

Pflege - (^)

Sie können verwenden '^' mit quadratischer Klammer, um das Kugbing -Muster genauer zu definieren. '^' kann innerhalb oder außerhalb der quadratischen Klammer verwendet werden. '^' wird außerhalb der quadratischen Klammer verwendet, um diese Inhalte der Datei zu durchsuchen, die mit einem bestimmten Zeichenbereich beginnt. In der quadratischen Halterung wird '^' verwendet, um alle Inhalte der Datei anzuzeigen, indem hervorgeht, dass die Zeilen mit einem bestimmten Zeichenbereich beginnen . Sie können verschiedene Arten von Globbing -Mustern verwenden, um bestimmte Inhalte aus einer Datei zu durchsuchen. "Grep" Der Befehl wird für die Inhaltssuche in Bash verwendet. Angenommen, Sie haben eine Textdatei mit dem Namen 'Liste.txt' mit dem folgenden Inhalt. Testen Sie die folgenden Beispiele für diese Datei.

Apfel
4000
Banane
700
Orange
850
Birne
9000
Jackdruit

Beispiel 1:

Führen Sie den folgenden Befehl aus, um diese Zeilen von zu durchsuchen Liste.txt Datei, die mit beginnt mit P oder q oder r.

$ grep '^[p-r]' Liste.txt

Beispiel - 2:

Führen Sie den folgenden Befehl aus, um diese Zeilen hervorzuheben Liste.txt Datei, die mit beginnt mit A oder b oder c.

$ grep '[^a-c]' Liste.txt

Ausrufezeichen - ((!)

Sie können verwenden ''!'' innerhalb des Bereichsmusters. Es funktioniert genauso wie die Verwendung von '^' Symbol außerhalb des Bereichsmusters. Einige Beispiele für die Verwendung ''!'' Zeichen sind unten angegeben.

Beispiel 1:

Führen Sie den folgenden Befehl aus, um diese Zeilen aus anzuzeigen Liste.txt Datei, die mit beginnt mit 'P' oder q oder r.

$ grep [!P-R] Liste.txt

Beispiel - 2:

Führen Sie den folgenden Befehl aus, um diese Zeilen aus anzuzeigen Liste.txt Datei, die mit jeder Ziffer von startet 4 bis 8.

$ grep [!4-8] Liste.txt

Dollar Zeichen - ($)

"$" wird verwendet, um den Endcharakter zu definieren. Wenn Sie wissen, dass Sie Informationen basierend auf dem letzten Zeichen suchen möchten, können Sie verwenden "$" im Kugelmuster.

Beispiel 1:

Führen Sie den folgenden Befehl aus, um diese Zeilen von zu durchsuchen Liste.txt Datei, die mit endet mit 'A'.

$ grep a $ liste.txt

Beispiel - 2:

Führen Sie den folgenden Befehl aus, um diese Zeilen von zu durchsuchen Liste.txt Datei dieses Ende mit der Nummer 50.

$ grep 50 $ liste.txt

Geschweifte Klammer - ()

'' Kann verwendet werden, um Dateinamen mit mehr als einem Kügelchen -Mustern abzustimmen. Jedes Muster wird durch ',' in lockiger Klammer ohne Platz getrennt. Einige Beispiele sind unten angegeben.

Beispiel 1:

Führen Sie den folgenden Befehl aus, um die Dateien zu durchsuchen, deren Namen 5 Zeichen lang sind, und die Erweiterung ist 'Sch' oder die letzten beiden Zeichen der Dateien sind 'st' und die Erweiterung ist 'txt'.

$ ls -l ?????.Sh,*st.txt

Beispiel - 2:

Führen Sie den folgenden Befehl aus, um alle Dateien zu löschen, deren Erweiterungen sind 'doc' oder 'docx'.

$ rm *.doc,*.docx

Rohr- (|)

'|' Das Zeichen wird auch verwendet, um mehr als eine Bedingung auf das Kugelmuster anzuwenden. Jedes Muster wird durch '|' getrennt Symbol im Befehl.

Beispiel 1:

Führen Sie den folgenden Befehl aus, um diese Dateinamen zu durchsuchen, die mit dem Charakter "a" beginnen und die Erweiterung "Bash" oder "SH" hat.

$ ls a*+(.Bash |.Sch)

Beispiel - 2:

Erstellen Sie eine Bash -Datei mit dem Namen 'Speisekarte.verprügeln ' und fügen Sie das folgende Skript hinzu. Wenn der Benutzertyp 1 oder s dann wird es drucken "Suchtext". Wenn der Benutzertyp 2 oder r dann wird es drucken “Text ersetzen”. Wenn der Benutzertyp 3 oder d dann wird es drucken „Text löschen”. Es wird drucken "Versuchen Sie es erneut" Für jede andere Eingabe.

#!/Bin/Bash
Echo "Wählen Sie eine Option aus dem Menü aus:"
Antwort lesen
Fall $ Antwort in
1 | S) Echo "Suchtext" ;;
2 | R) Echo "Ersetzen von Text" ;;
3 | D) Echo "Text löschen" ;;
*) Echo "Versuchen Sie es erneut.";;;
ESAC

Führen Sie das Skript aus.

$ Bash -Menü.verprügeln

ABSCHLUSS

Einige der am häufigsten verwendeten Kugbing -Muster werden in diesem Tutorial mit sehr einfachen Beispielen erklärt. Ich hoffe.

Weitere Informationen finden Sie in diesem Video: