Verwendung von Platzhaltern

Ein Platzhalter ist ein Zeichen, das als Ersatz für eine beliebige Zeichenklasse in einer Suche verwendet werden kann, wodurch die Flexibilität und Effizienz der Suche erheblich erhöht wird.

Platzhalter werden häufig in Shell-Befehlen in Linux und anderen Unix-ähnlichen Betriebssystemen verwendet. Eine Shell ist ein Programm, das eine reine Textbenutzeroberfläche bereitstellt und dessen Hauptfunktion darin besteht, von Benutzern eingegebene Befehle auszuführen und deren Ergebnisse anzuzeigen.

Platzhalter werden auch in regulären Ausdrücken und Programmiersprachen verwendet. Reguläre Ausdrücke sind ein Mustervergleichssystem, das Zeichenfolgen (d. H. Zeichenfolgen) verwendet, die nach vordefinierten Syntaxregeln erstellt wurden, um gewünschte Zeichenfolgen im Text zu finden.

Der Begriff Wildcard oder Wildcard wurde ursprünglich in Kartenspielen verwendet, um eine Karte zu beschreiben, der ein beliebiger Wert zugewiesen werden kann, den der Inhaber wünscht. Seine Verwendung hat sich jedoch verbreitet, so dass es jetzt verwendet wird, um einen unbekannten oder unvorhersehbaren Faktor in einer Vielzahl von Bereichen zu beschreiben.

Star Wildcard

Bei Linux-Befehlen werden drei Arten von Platzhaltern verwendet. Der am häufigsten verwendete und in der Regel nützlichste Platzhalter ist der Stern, der einem Sternchen (*) entspricht. Der Stern-Platzhalter hat die breiteste Bedeutung aller Platzhalter, da er Nullzeichen, alle Einzelzeichen oder eine beliebige Zeichenfolge darstellen kann.

Der Befehl file stellt beispielsweise Informationen zu jedem Dateisystemobjekt (d. h. Datei, Verzeichnis oder Link) bereit, das ihm als Argument (d. h. Eingabe) bereitgestellt wird. Da der Stern-Platzhalter jede Zeichenfolge darstellt, kann er als Argument für file verwendet werden, um Informationen zu jedem Objekt im angegebenen Verzeichnis zurückzugeben. Daher würden im Folgenden Informationen zu jedem Objekt im aktuellen Verzeichnis angezeigt (dh zu dem Verzeichnis, in dem der Benutzer gerade arbeitet):

file *

Wenn keine Übereinstimmungen vorhanden sind, wird eine Fehlermeldung zurückgegeben, z. B. *: can`t stat ‚*‘ (Keine solche Datei oder kein solches Verzeichnis).. In diesem Beispiel gibt es nur dann keine Übereinstimmungen, wenn das Verzeichnis leer wäre.

Platzhalter können mit anderen Zeichen kombiniert werden, um Teile von Zeichenfolgen darzustellen. Zum Beispiel, um jedes Dateisystemobjekt darzustellen, das eine hat .jpg-Dateinamenerweiterung, *.jpg verwendet werden. Ebenso würde a* alle Objekte darstellen, die mit einem Kleinbuchstaben (d. H. Kleinbuchstaben) beginnen a.

Als weiteres Beispiel würde das Folgende den Befehl ls (der zum Auflisten von Dateien verwendet wird) anweisen, die Namen aller Dateien im aktuellen Verzeichnis anzugeben, die eine haben .html oder ein .txt-Erweiterung:

ls *.html *.txt

Ebenso würde das Folgende den Befehl rm (der zum Entfernen von Dateien und Verzeichnissen verwendet wird) anweisen, alle Dateien im aktuellen Verzeichnis zu löschen, deren Name die Zeichenfolge xxx enthält:

rm *xxx*

Fragezeichen Platzhalter

Das Fragezeichen (?) wird als Platzhalterzeichen in Shell-Befehlen verwendet, um genau ein Zeichen darzustellen, das ein beliebiges einzelnes Zeichen sein kann. Somit würden zwei Fragezeichen hintereinander zwei beliebige Zeichen hintereinander darstellen, und drei Fragezeichen hintereinander würden eine beliebige Zeichenfolge darstellen, die aus drei Zeichen besteht.

So würde beispielsweise folgendes Daten zu allen Objekten im aktuellen Verzeichnis zurückgeben, deren Namen einschließlich aller Erweiterungen genau drei Zeichen lang sind:

file ???

Und das Folgende würde Daten zu allen Objekten liefern, deren Namen ein, zwei oder drei Zeichen lang sind:

file ? ?? ???

Wie beim Stern-Platzhalter kann der Fragezeichen-Platzhalter in Kombination mit anderen Zeichen verwendet werden. Im Folgenden finden Sie beispielsweise Informationen zu allen Objekten im aktuellen Verzeichnis, die mit dem Buchstaben a beginnen und fünf Zeichen lang sind:

file a????

Der Fragezeichen-Platzhalter kann auch in Kombination mit anderen Platzhaltern verwendet werden, wenn er durch ein anderes Zeichen getrennt ist. Im Folgenden wird beispielsweise eine Liste aller Dateien im aktuellen Verzeichnis zurückgegeben, die eine dreistellige Dateinamenerweiterung haben:

ls *.???

Platzhalter in eckigen Klammern

Der dritte Typ von Platzhaltern in Shell-Befehlen ist ein Paar eckiger Klammern, die jedes der in den Klammern enthaltenen Zeichen darstellen können. So würde beispielsweise Folgendes Informationen zu allen Objekten im aktuellen Verzeichnis bereitstellen, die ein x, y und / oder z enthalten:

file **

Im Folgenden werden alle Dateien aufgelistet, deren Erweiterung mit x, y oder z beginnt:

ls *.*

Die gleichen Ergebnisse können nur mit den Platzhaltern Stern und Fragezeichen erzielt werden. Es ist jedoch deutlich effizienter, den Platzhalter Bracket zu verwenden.

Wenn ein Bindestrich zwischen zwei Zeichen im Platzhalter in eckigen Klammern verwendet wird, gibt er einen Bereich an, der diese beiden Zeichen enthält. Im Folgenden finden Sie beispielsweise Informationen zu allen Objekten im aktuellen Verzeichnis, die mit einem beliebigen Buchstaben von a bis f beginnen:

file *

Und das Folgende würde Informationen zu jedem Objekt im aktuellen Verzeichnis bereitstellen, dessen Name mindestens eine Ziffer enthält:

file **

Die Verwendung der eckigen Klammern zur Angabe eines Bereichs kann mit der Verwendung zur Angabe einer Liste kombiniert werden. So würde beispielsweise Folgendes Informationen über alle Dateisystemobjekte bereitstellen, deren Namen mit einem beliebigen Buchstaben von a bis c oder mit s oder t beginnen:

file *

Ebenso können mehrere Sätze von Bereichen angegeben werden. So würde beispielsweise Folgendes Informationen zu allen Objekten zurückgeben, deren Namen mit den ersten drei oder den letzten drei Kleinbuchstaben des Alphabets beginnen:

file *

Manchmal kann es nützlich sein, eine Abfolge von Platzhaltern in eckigen Klammern zu haben. Im Folgenden werden beispielsweise alle Dateinamen im aktuellen Verzeichnis angezeigt, die aus Buchstaben gefolgt von einer dreistelligen Zahl bestehen:

ls jones



+