10 praktische Beispiele für die Verwendung von Platzhaltern zum Abgleichen von Dateinamen in Linux
Platzhalter (auch als Metazeichen bezeichnet) sind Symbole oder Sonderzeichen, die andere Zeichen darstellen. Sie können sie mit einem beliebigen Befehl verwenden, z. B. dem Befehl ls oder dem Befehl rm, um Dateien, die einem bestimmten Kriterium entsprechen, rezeptiv aufzulisten oder zu entfernen.
Lesen Sie auch: 10 nützliche Praxisbeispiele zum Verketten von Operatoren in 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 stimmt damit überein. - Zeichen in eckigen Klammern
([ ])– entspricht jedem Vorkommen von Zeichen in eckigen Klammern. Es ist möglich, verschiedene Arten von Zeichen (alphanumerische Zeichen) zu verwenden: Zahlen, Buchstaben, andere Sonderzeichen usw.
Sie müssen sorgfältig auswählen, welcher Platzhalter verwendet werden soll, um die richtigen Dateinamen zu finden: Es ist auch möglich, alle in einem Vorgang zu kombinieren, wie in den folgenden Beispielen erläutert.
So gleichen Sie Dateinamen mit Platzhaltern unter Linux ab
Für die Zwecke dieses Artikels werden wir die folgenden Dateien verwenden, 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 weitere Verwendung von *, um alle Dateinamen zu kopieren, 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 endend mit st.sh (dem Suffix).
$ 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 endend mit st.sh.
$ ls l[abdcio]st.sh
So kombinieren Sie Platzhalter, um Dateinamen in Linux abzugleichen.
Sie können Platzhalter kombinieren, um einen komplexen Dateinamen zu erstellen, der den Kriterien entspricht, wie in den folgenden Beispielen beschrieben.
5. Dieser Befehl findet alle Dateinamen, denen zwei beliebige Zeichen gefolgt von st vorangestellt sind, die aber mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.
$ ls
ls ??st*
6. In diesem Beispiel werden Dateinamen abgeglichen, die mit einem der folgenden Zeichen [clst] beginnen und mit einem oder mehreren Vorkommen eines beliebigen Zeichens enden.
$ ls
ls [clst]*
7. In diesen Beispielen werden nur Dateinamen aufgelistet, die mit einem dieser Zeichen [clst] beginnen, gefolgt von einem dieser Zeichen [io] und dann mit einem beliebigen einzelnen Zeichen, gefolgt von einem t und schließlich einem oder mehreren Vorkommen eines beliebigen Zeichens.
$ ls
ls [clst][io]?t*
8. Hier werden Dateinamen, 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, entfernt.
$ ls
rm *tar*
ls
So ordnen Sie in Linux gesetzte Zeichen zu
9. Schauen wir uns nun an, wie Sie einen Zeichensatz angeben. Betrachten Sie die folgenden Dateinamen mit Informationen zum Systembenutzer.
$ 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 stimmt mit allen Dateien überein, 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 entspricht allen Dateinamen, 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 eines beliebigen Zeichens.
$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*
So negieren Sie einen Zeichensatz in Linux
10. Sie können auch eine Reihe von Zeichen 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 endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.
$ ls users-[0-9][!0-9][a-zA-Z]*
Das war's fürs Erste! Wenn Sie die obigen Beispiele ausprobiert haben, sollten Sie jetzt ein gutes Verständnis dafür haben, wie Platzhalter funktionieren, um Dateinamen in Linux abzugleichen.
Vielleicht möchten Sie auch die folgenden Artikel lesen, die Beispiele für die Verwendung von Platzhaltern in Linux enthalten:
- So extrahieren Sie Tar-Dateien in ein bestimmtes oder anderes Verzeichnis unter Linux
- 3 Möglichkeiten, alle Dateien in einem Verzeichnis mit Ausnahme einer oder weniger Dateien mit Erweiterungen zu löschen
- 10 nützliche Tipps zum Schreiben effektiver Bash-Skripte unter Linux
- So verwenden Sie awk und reguläre Ausdrücke, um Text oder Zeichenfolgen in Dateien zu filtern
Wenn Sie etwas mitzuteilen oder eine Frage zu stellen haben, verwenden Sie das Kommentarformular unten.








