Skip to main content

Linux-Metazeichen und ihre Bedeutung

Regulärer Ausdruck - Automaten & Formale Sprachen 6 ● Gehe auf SIMPLECLUB.DE/GO (Juni 2025)

Regulärer Ausdruck - Automaten & Formale Sprachen 6 ● Gehe auf SIMPLECLUB.DE/GO (Juni 2025)
Anonim

Laut Wikipedia handelt es sich bei einem Metazeichen um ein Zeichen, das eine besondere Bedeutung hat, z. B. ein Karat (^), ein Dollarzeichen ($) oder ein Sternchen (*).

Unter Linux gibt es eine ganze Reihe dieser Metazeichen und ihre Bedeutung unterscheidet sich je nach Befehl oder Programm, das Sie ausführen.

Der Punkt als Metazeichen (.)

Der bescheidene Punkt wird verwendet, um die aktuelle Position zu spenden, wenn Befehle wie cd, find oder sh ausgeführt werden. In Anwendungen wie awk, grep und sed werden jedoch beliebige Zeichen angegeben.

Als Beispiel werden mit dem folgenden Befehl alle MP3-Dateien im aktuellen Ordner und darunter gefunden.

finden . -name * .mp3

Wenn Sie diesen Befehl in Ihrem aktuellen Arbeitsverzeichnis (pwd) ausführen, werden wahrscheinlich Ergebnisse zurückgegeben, vorausgesetzt, Sie behalten Ihre MP3-Dateien in einem Musikordner in Ihrem Heimatordner.

Sehen Sie sich nun diesen Befehl an:

ps -ef | grep f..efox

Der Befehl ps listet alle laufenden Prozesse auf Ihrem Computer auf. Der Befehl grep nimmt Zeilen für die Eingabe auf und sucht nach einem Muster.

Daher erhält der Befehl ps -ef eine Liste der laufenden Prozesse und gibt es an grep, die nach einer Zeile in der Liste sucht, die f..efox enthält, in der der. kann einen beliebigen Charakter bedeuten.

Wenn Sie Firefox am Laufen haben, erhalten Sie eine Übereinstimmung. Wenn Sie ein Programm namens fonefox oder freefox ausführen, werden diese ebenfalls zurückgegeben.

Das Sternchen als Metazeichen (*)

Das Sternchen ist ein allgemein bekannter Metazeichen und wird verwendet, um 0 oder mehr zu bedeuten, wenn nach einem Muster gesucht wird.

Zum Beispiel:

finden . -name * .mp3

Der * .mp3 gibt eine Übereinstimmung für jeden Dateinamen zurück, der auf .mp3 endet. In ähnlicher Weise hätte ich das Sternchen mit dem Befehl grep verwenden können, wie die folgende Abbildung zeigt:

ps -ef | grep F * efox

Es ist erwähnenswert, dass sich dies geringfügig unterscheidet, da das Sternchen Null oder mehr bedeutet. Wenn Sie Firefox, Facefox und Fonefox finden, kann es auch Flutefox, Frettchen und sogar nur Fefox finden.

Der Karat als Metacharakter (^)

Das Carat (^) bezeichnet den Beginn einer Zeile oder einer Zeichenfolge. Wie wird es verwendet?

Mit dem Befehl ls werden alle Dateien in einem Ordner wie folgt aufgelistet:

ls

Wenn Sie alle Dateien in einem Ordner wissen möchten, der mit einer bestimmten Zeichenfolge beginnt, z. B. "gnome", können Sie mit dem Carat diese Zeichenfolge angeben.

Zum Beispiel:

ls | grep ^ gnome

Beachten Sie, dass hier nur Dateien aufgelistet werden, die mit gnome beginnen. Wenn Sie Dateien mit einem Gnomen im Dateinamen an einer beliebigen Stelle haben möchten, kehren Sie wieder zum Sternchen zurück.

Im obigen Beispiel gibt das ls eine Liste mit Dateinamen zurück und übergibt diese an grep, die für die Mustererkennung verwendet wird. grep weiß, dass das Karat-Symbol bedeutet, alles zu finden, was mit den Zeichen beginnt, die danach kommen. In diesem Fall ist es ein Gnom.

Das Dollarsymbol als Metazeichen ($)

Das Dollar-Symbol kann als Metazeichen in Linux mehrere Bedeutungen haben.

Bei Verwendung von Mustern bedeutet dies das Gegenteil von Carat und bezeichnet jedes Muster, das mit einer bestimmten Zeichenfolge endet.

Zum Beispiel:

ls | grep png $

Dies listet alle Dateien auf, die mit png enden.

Das Dollarsymbol wird auch verwendet, um auf Umgebungsvariablen innerhalb der Bash-Shell zuzugreifen.

Zum Beispiel:

Export Hund = MollyEcho $ Hund

Die Zeile export dog = molly erstellt eine Umgebungsvariable namens dog und setzt ihren Wert auf molly. Für den Zugriff auf die Umgebungsvariable wird das Symbol $ verwendet. Mit dem $ -Symbol zeigt die Echo $ Dog-Anweisung Molly an, aber ohne sie zeigt die Echo Dog-Anweisung nur das Wort Dog an.

Flucht von Metazeichen

Manchmal möchten Sie nicht, dass das Metazeichen eine besondere Bedeutung hat. Was ist, wenn Sie eine Datei namens f.refox und eine Datei namens firefox haben.

Sehen Sie sich nun den folgenden Befehl an:

ls | grep f.refox

Was glaubst du wird zurückgegeben? Sowohl f.refox als auch firefox werden zurückgegeben, da beide zum Muster passen.

Um nur f.refox zurückzugeben, müssen Sie dem Punkt entgehen, um einen Punkt zu bedeuten:

ls | grep f refox

Allgemeine Metazeichen und ihre Bedeutung

Liste der Linux-Metazeichen
CharakterBedeutung
.Ein beliebiges Zeichen
*Null oder mehr Zeichen
^Übereinstimmung mit jeder Zeile oder Zeichenfolge, die mit einem Muster beginnt (d. H. Gnome)
$Eine beliebige Linie oder Zeichenfolge mit einem Muster abgleichen (d. H. Gnome $)
Entfernt den nächsten Buchstaben, um seine spezielle Bedeutung zu entfernen
Entspricht einer Liste oder einem Bereich (d. H. "Abc", "def" oder 1..9.
+Übereinstimmung mit einem oder mehreren vorhergehenden (d. H. Grep a +)
?Null oder eins vorausgehen