Website-Suche

10 praktische Beispiele für die Verwendung von Platzhaltern zum Abgleichen von Dateinamen unter Linux


Platzhalter (auch Metazeichen genannt) sind Symbole oder Sonderzeichen, die andere Zeichen darstellen. Sie können sie mit jedem Befehl wie dem Befehl ls oder dem Befehl rm verwenden, um Dateien, die einem bestimmten Kriterium entsprechen, rezeptiv aufzulisten oder zu entfernen.

Lesen Sie auch: 10 nützliche praktische Beispiele zur Verkettung von Operatoren unter Linux

Diese Platzhalter werden von der Shell interpretiert und die Ergebnisse werden an den von Ihnen ausgeführten Befehl zurückgegeben. Unter Linux gibt es drei Hauptplatzhalter:

  • Ein Sternchen (*) – entspricht einem oder mehreren Vorkommen eines beliebigen Zeichens, einschließlich keinem Zeichen.
  • Fragezeichen (?) – stellt ein einzelnes Vorkommen eines beliebigen Zeichens dar oder entspricht diesem.
  • Zeichen in Klammern ([ ]) – entspricht allen Vorkommen von Zeichen, die in eckigen Klammern eingeschlossen sind. Es ist möglich, verschiedene Arten von Zeichen (alphanumerische Zeichen) zu verwenden: Zahlen, Buchstaben, andere Sonderzeichen usw.

Sie müssen sorgfältig auswählen, welches Platzhalterzeichen Sie verwenden möchten, um korrekte Dateinamen zu finden: Es ist auch möglich, alle Platzhalter in einem Vorgang zu kombinieren, wie in den folgenden Beispielen erläutert.

So passen Sie Dateinamen mithilfe von Platzhaltern unter Linux an

Für den Zweck dieses Artikels verwenden wir die folgenden Dateien, um jedes Beispiel zu veranschaulichen.

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

1. Dieser Befehl gleicht alle Dateien ab, deren Namen mit l (dem Präfix) beginnen und mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.

ls -l l*	

2. Dieses Beispiel zeigt eine andere Verwendung von * zum Kopieren aller Dateinamen, denen users-0 vorangestellt ist und die mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.

mkdir -p users-info
ls users-0*
mv -v users-0* users-info/	# Option -v flag enables verbose output

3. Der folgende Befehl gleicht alle Dateien ab, deren Namen mit l beginnen, gefolgt von einem beliebigen einzelnen Zeichen und mit st.sh (dem Suffix) enden ).

ls l?st.sh	

4. Der folgende Befehl gleicht alle Dateien ab, deren Namen mit l beginnen, gefolgt von einem der Zeichen in der eckigen Klammer, aber mit st.sh enden .

ls l[abdcio]st.sh 

So kombinieren Sie Platzhalter, um sie an Dateinamen unter Linux anzupassen

Sie können Platzhalter kombinieren, um ein komplexes Dateinamen-Übereinstimmungskriterium zu erstellen, wie in den folgenden Beispielen beschrieben.

5. Mit diesem Befehl werden alle Dateinamen abgeglichen, denen zwei beliebige Zeichen vorangestellt sind, gefolgt von st, die jedoch mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.

ls
ls ??st*

6. Dieses Beispiel gleicht Dateinamen ab, die mit einem dieser Zeichen [clst] beginnen und mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.

ls
ls [clst]*

7. In diesen Beispielen nur Dateinamen, die mit einem dieser Zeichen [clst] beginnen, gefolgt von einem dieser Zeichen [io] und dann einem beliebigen Einzelzeichen Zeichen, gefolgt von einem t und schließlich werden ein oder mehrere Vorkommen eines beliebigen Zeichens aufgelistet.

ls
ls [clst][io]?t*

8. Hier werden Dateinamen entfernt, denen ein oder mehrere Vorkommen eines beliebigen Zeichens vorangestellt sind, gefolgt von den Buchstaben tar und die mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.

ls
rm *tar*
ls

So passen Sie unter Linux festgelegte Zeichen an

9. Schauen wir uns nun an, wie man einen Zeichensatz angibt. Betrachten Sie die folgenden Dateinamen, die Informationen zu Systembenutzern enthalten.

ls

users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

Dieser Befehl sucht nach allen Dateien, deren Name mit users-i beginnt, gefolgt von einer Zahl, einem Kleinbuchstaben oder einer Zahl, dann einer Zahl und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

ls users-[0-9][a-z0-9][0-9]*

Der nächste Befehl gleicht Dateinamen ab, die mit users-i beginnen, gefolgt von einer Zahl, einem Klein- oder Großbuchstaben oder einer Zahl, dann einer Zahl und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

ls users-[0-9][a-zA-Z0-9][0-9]*

Der folgende Befehl gleicht alle Dateinamen ab, die mit users-i beginnen, gefolgt von einer Zahl, einem Klein- oder Großbuchstaben oder einer Zahl, dann einem Klein- oder Großbuchstaben und endet mit einem oder mehreren Vorkommen von irgendein Charakter.

ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

So negieren Sie einen Zeichensatz unter Linux

10. Sie können eine Reihe von Zeichen auch mit dem Symbol ! negieren. Der folgende Befehl listet alle Dateinamen auf, die mit users-i beginnen, gefolgt von einer Zahl, einem beliebigen gültigen Dateinamenszeichen außer einer Zahl, dann einem Klein- oder Großbuchstaben und enden mit einem oder mehreren Vorkommen von any Charakter.

ls users-[0-9][!0-9][a-zA-Z]*

Das ist alles für jetzt! Wenn Sie die obigen Beispiele ausprobiert haben, sollten Sie nun gut verstehen, wie Platzhalter bei der Zuordnung von Dateinamen unter Linux funktionieren.

Vielleicht möchten Sie auch die folgenden Artikel lesen, die Beispiele für die Verwendung von Platzhaltern unter Linux zeigen:

  1. So extrahieren Sie TAR-Dateien in ein bestimmtes oder anderes Verzeichnis unter Linux
  2. 3 Möglichkeiten, alle Dateien in einem Verzeichnis außer einer oder wenigen Dateien mit Erweiterungen zu löschen
  3. 10 nützliche Tipps zum Schreiben effektiver Bash-Skripte unter Linux
  4. So verwenden Sie Awk und reguläre Ausdrücke zum Filtern von Text oder Zeichenfolgen in Dateien

Wenn Sie etwas mitteilen oder eine Frage stellen möchten, verwenden Sie das Kommentarformular unten.