GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wildcards in Linux erklärt mit 10 Beispielen

Platzhalter, auch bekannt als Metazeichen, sind ein Glücksfall, wenn es darum geht, in einem Haufen ähnlich benannter Dateien nach bestimmten Dateinamen zu suchen. Wenn Sie beispielsweise unter Linux Wildcards verwenden, können Sie ls verwenden Befehl,  rm Befehl oder jeden anderen Linux-Befehl für diese Angelegenheit auf mehrere Dateien anwenden, solange sie den definierten Kriterien entsprechen.

In dieser Lektüre werden wir erörtern, wie Sie Platzhalter in Linux verwenden können, um Ihren Arbeitsablauf zu rationalisieren und produktiver zu werden. Aber zuerst werfen wir einen kurzen Blick auf die mächtigsten und am häufigsten verwendeten Platzhalter in Linux:

  1. Das Sternchen (*) :Das (*) Wildcard steht für eine beliebige Anzahl unbekannter Zeichen. Dies ist nützlich, wenn Sie nach Dokumenten oder Dateien suchen, sich aber nur an einen Teil des Namens erinnern.
  2. Das Fragezeichen (?) :Das (?) Wildcard repräsentiert nur ein unbekanntes Zeichen. Dies ist nützlich, wenn Sie eine Liste ähnlich benannter Dateien haben und sich bei einigen Zeichen nicht sicher sind.
  3. Die Zeichen in Klammern ([ ]) :Das ([ ]) Platzhalter – die 3. Klammer und nicht die 1. Klammer – wird verwendet, um alle Vorkommen von Zeichen abzugleichen, die innerhalb der Klammern definiert sind. Diese Option ist praktisch, wenn es um Dateien mit Groß- und Kleinschreibung geht, wie wir später sehen werden.

Jetzt ist mir klar, dass all diese Informationen keinen Sinn ergeben, wenn Sie sich noch nie mit Wildcards befasst haben. Um Ihnen jedoch dabei zu helfen, Ihre Verwirrung zu beseitigen, haben wir einen detaillierten Leitfaden mit 10 Beispielen zusammengestellt, um sicherzustellen, dass Sie die Funktion von Platzhaltern richtig verstehen und sie selbst verwenden können.

Beispiele für übereinstimmende Dateinamen mit Platzhaltern

Lassen Sie uns zunächst alle verschiedenen Platzhalter verwenden, die wir zuvor besprochen haben, und sehen, wie Sie sie zum Abgleichen von Dateinamen verwenden. Dazu verwenden wir die folgenden Dateien:

  1. Dieser Befehl gleicht alle Dateinamen ab, die mit dem Buchstaben M beginnen und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.
$ ls -l M*

Ausgabe:

Beachten Sie, dass es nur mit den Dateien übereinstimmt, die mit dem Großbuchstaben „M“ und nicht mit dem Kleinbuchstaben „m“ beginnen.

2. Dieser Befehl kopiert alle Dateinamen beginnend mit My-Data und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

$ ls My-Data*

Ausgabe:

3. Dieser Befehl gleicht alle Dateien ab, die mit dem Buchstaben M beginnen , die mit dem Buchstaben N endet , und mit einem beliebigen Zeichen dazwischen.

$ ls M?N.sh

Ausgabe:

4. Dieser Befehl gleicht alle Dateien ab, die mit dem Buchstaben M beginnen , die mit dem Buchstaben N endet , aber nur 1 Zeichen dazwischen gehört zu der Liste der Zeichen, die in den eckigen Klammern [AEIOU] definiert sind .

$ ls M[AEIOU]N.sh

Ausgabe:

4 Beispiele für das Kombinieren verschiedener Wildcards zum Abgleichen von Dateinamen

Um Ihre Effektivität zu steigern, können Sie jetzt diese Platzhalter mischen und abgleichen, um zusammenzuarbeiten und beim Abgleichen von Dateinamen effektiver zu sein.

  1. Hier ist ein Befehl, der Ihnen hilft, jeden Dateinamen zu finden, der aus 3 beliebigen Zeichen (einschließlich keine Zeichen) gefolgt von Kuchen bestehen kann und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.
$ ls ???cake*

Ausgabe:

2. Hier ist ein Befehl, der alle Dateinamen abgleicht, die mit einem dieser Zeichen in den eckigen Klammern [MNLOP] beginnen und mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.

Sehen wir uns auch an, was passiert, wenn wir [MNLOP] ersetzen mit [mnlop] .

Die Befehle, die wir verwenden werden, sind also:

$ ls [MNLOP]*
$ ls [mnlop]*

Ausgabe:

Wie Sie sehen können, müssen Sie die Groß- und Kleinschreibung der Buchstaben beachten, die Sie in den Klammer-Platzhalter eingeben, da dies das Ergebnis beeinflusst.

3. Hier ist ein Befehl, der alle Dateinamen mit einem dieser Zeichen abgleicht [MNLOP] als erstes eines dieser Zeichen [AEIOU] als zweites, gefolgt von N , und endet schließlich mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

$ ls [MNLOP][AEIOU]N*

Ausgabe:

Beachten Sie, wie das (*) Platzhalter hilft nur dabei, alle Erweiterungen der Dateinamen zu finden.4.

Hier ist ein Befehl, der alle Dateinamen abgleicht, die mit einem oder mehreren Vorkommen eines beliebigen Zeichens beginnen, das zu M führt , gefolgt von 1 beliebigem Zeichen, dann gefolgt von N , und endet dann mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

$ ls *M?N*

Ausgabe:

Verwenden von Platzhaltern zum Abgleichen von Zeichensätzen

Inzwischen sollten Sie wissen, wie Platzhalter funktionieren. Wir können uns jetzt auf einige fortgeschrittene Anwendungsfälle konzentrieren, in denen Platzhalter von unschätzbarem Wert sind.

Zum Beispiel der Platzhalter in Klammern ermöglicht es Ihnen, einen Bereich von Zeichen mit [-] zu definieren anstatt jedes Zeichen einzutippen. Dies kann äußerst nützlich sein, wenn Sie eine Reihe von Zeichen angeben und Dateinamen basierend darauf abgleichen möchten, wo die Zeichen erscheinen.

Dazu verwenden wir die folgenden Dateien, wie im Bild gezeigt:

Wie Sie sehen können, ist das von uns erstellte Bild eine Liste von Dateien, die verschiedene Pokemon-Daten enthalten.

Finden Sie jetzt alle Dateinamen, die mit pokemon- beginnen gefolgt von einer Zahl, dann einem beliebigen alphanumerischen Zeichen, wiederum gefolgt von einer Zahl, und am Ende mit einem oder mehreren Vorkommen eines beliebigen Zeichens, können wir den folgenden Befehl verwenden:

$ls pokemon-[0-9][0-9a-zA-Z][0-9]*

Ausgabe:

Der Teil [0-9] steht für beliebige numerische Zeichen zwischen 0 bis 9 .

Der nächste Teil [0-9a-zA-Z] steht für eine beliebige Anzahl von Zeichen zwischen 0 bis 9 , oder ein beliebiger Kleinbuchstabe zwischen a bis z, oder ein Großbuchstabe zwischen A bis Z .

Wenn wir also [0-9a-zA-Z] ausschalten mit [0-9a-z] , können Sie sehen, dass das Ergebnis keinen Dateinamen mit Großbuchstaben an der angegebenen Position enthält.

$ls pokemon-[0-9][0-9a-z][0-9]*

Ausgabe:

Verwenden von Platzhaltern zum Negieren einer Reihe von Zeichen

So wie Sie einen Satz von Zeichen angeben können, können Sie auch einen Satz von Zeichen negieren, während Sie nach Dateinamen suchen. Hier ist ein Beispiel, wie es gemacht wird:

$ls pokemon-[0-9][!a-z][0-9]*

Ausgabe:

Dies entspricht allen Dateinamen, die mit pokemon- beginnen gefolgt von einem beliebigen numerischen Zeichen, dann von einem beliebigen anderen Zeichen als Kleinbuchstaben, gefolgt von einem beliebigen numerischen Zeichen und endet schließlich mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

Mit [!a-z], wir negieren die Menge aller Kleinbuchstaben. Jetzt werden die Dateinamen auf alle Zeichen abgeglichen, die keine Kleinbuchstaben sind.

Abschluss

Das bringt uns zum Ende unseres kurzen Blicks auf Linux-Wildcards und wie man sie verwendet. Alles auf den Punkt gebracht, das Sternchen (*) Wildcard ist am nützlichsten, wenn Sie den Dateinamen kennen, aber nicht die Erweiterung. Das Fragezeichen (?) Wildcard kann Ihnen helfen, wenn Sie ein paar Dateinamenzeichen vergessen. Die Klammern ([]) Wildcard ist nützlich, wenn Sie Ihre Suche innerhalb einer Reihe definierter Zeichen enthalten möchten.


Linux
  1. Linux cut Befehl erklärt mit 6 Beispielen

  2. Befehl zum Herunterfahren von Linux mit Beispielen erklärt

  3. nslookup Linux-Befehl mit Beispielen erklärt

  4. Linux Traceroute-Befehl, erklärt mit Beispielen

  5. whoami-Befehl in Linux mit Beispielen erklärt

Tr-Befehl in Linux mit Beispielen erklärt

w Befehl mit Beispielen in Linux erklärt

Wait-Befehl in Linux mit praktischen Beispielen erklärt

Linux tee-Befehl erklärt (mit Beispielen)

Linux csplit Befehl erklärt (mit Beispielen)

Linux tr-Befehl mit Beispielen