Bei Verwendung der Linux-Shell müssen wir häufig Dateinamen oder Verzeichnisnamen verarbeiten. Die üblichen Vorgänge bestehen darin, den Dateinamen aus dem Pfad zu extrahieren, den Verzeichnisnamen aus dem Pfad zu extrahieren, den Dateisuffixnamen zu extrahieren usw. . Extrahieren Sie beispielsweise den Dateinamen file.txt aus dem Pfad /dir1/dir2/file.txt, extrahieren Sie das Verzeichnis /dir1/dir2, extrahieren Sie das Dateisuffix txt usw.
Im Folgenden werden zwei häufig verwendete Methoden zur Durchführung verwandter Vorgänge vorgestellt.
1. Verwenden Sie ${}
1 ${var##*/}
Die Funktion dieses Befehls besteht darin, das letzte ' von der linken Seite zu entfernen Variable var /'-Zeichen und sein linker Inhalt geben den rechten Inhalt des letzten '/' (mit Ausnahme dieses Zeichens) von links zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:
Wie Sie den laufenden Ergebnissen entnehmen können, können wir mit diesem Befehl den Dateinamen file.txt extrahieren, den wir benötigen.
Bei Verwendung in einer Shell-Programmdatei können Sie Variablen verwenden, um das Ergebnis zu speichern und es dann zu verwenden, z. B. file=${var##*/}
2, ${var # #*.}
Die Funktion dieses Befehls besteht darin, das letzte '.'-Zeichen links von der Variablen var und den Inhalt links davon zu entfernen und das letzte '.' zurückzugeben links (enthält dieses Zeichen nicht). Anwendungsbeispiele und Ergebnisse sind wie folgt:
Wie Sie den laufenden Ergebnissen entnehmen können, können wir mit diesem Befehl das benötigte Dateisuffix extrahieren.
Wenn die Datei mehr als ein Suffix hat, zum Beispiel file.tar.gz, kann der Befehl ${var##*.} nur das letzte Suffix extrahieren, und was soll ich tun, wenn ich möchte? tar.gz extrahieren? Dann müssen Sie den unten erwähnten Befehl ${var#*.} verwenden.
3. ${var#*.}
Die Funktion dieses Befehls besteht darin, das erste „.“ von der linken Seite der Variablen var und den Inhalt zu entfernen left Gibt den Inhalt rechts vom ersten „.“ (mit Ausnahme dieses Zeichens) von links zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:
Wie Sie den laufenden Ergebnissen entnehmen können, können mit diesem Befehl mehrere Suffixe von Dateien extrahiert werden.
4. ${var%/*}
Die Verwendung dieses Befehls besteht darin, das erste „/“-Zeichen rechts von der Variablen var und den Inhalt zu entfernen right Gibt den Inhalt links vom ersten „/“ (mit Ausnahme dieses Zeichens) von rechts zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:
Wie Sie den laufenden Ergebnissen entnehmen können, können wir mit diesem Befehl das Verzeichnis extrahieren, in dem sich die benötigten Dateien befinden
5 , ${var%%.*}
Die Verwendung dieses Befehls besteht darin, das letzte „.“ von der rechten Seite der Variablen var und ihren Inhalt auf der rechten Seite zu entfernen. und geben Sie das letzte „.“-Zeichen von der rechten Seite der Variablen var zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:
Wenn wir ein Verzeichnis mit demselben Namen wie der Dateiname (ohne Suffix) erstellen müssen, der der entsprechenden Datei entspricht, können wir dies tun Verwenden Sie diesen Befehl zum Bedienen. Die Situation beim Dekomprimieren von Dateien ist beispielsweise ähnlich. Wenn wir die Datei file.zip komprimieren, wird ein Verzeichnis mit dem Namen file im selben Verzeichnis wie file.zip erstellt.
6. Zusammenfassung von ${}
Tatsächlich wird ${} nicht speziell zum Extrahieren von Dateinamen oder Verzeichnisnamen verwendet. Es wird zum Extrahieren und Ersetzen von Variablen verwendet. usw. Es kann eine Menge Inhalt extrahieren, nicht unbedingt „/“ oder „.“ in den fünf Beispielen oben. Mit anderen Worten, die obige Verwendungsmethode ist nur ein Sonderfall ihrer Verwendung.
Wenn man die oben genannten Befehle sieht, kann es sehr schwierig sein, sie zu verstehen und zu merken. Tatsächlich sind sie alle normal.
#: Stellt den ersten von links dar
%: Stellt den Ersten von rechts dar
##: Stellt den dar letztes
von links: Stellt das letzte
von rechts dar. Mit anderen Worten bedeutet # immer, von links zu zählen das Richtige.
*: Gibt den zu löschenden Inhalt an. Im Fall von # und ## befindet er sich links vom angegebenen Zeichen (im Beispiel „/“ und „.“), was bedeutet, dass das angegebene Zeichen gelöscht wird und der Inhalt links davon; Im Fall von % und %% befindet es sich auf der rechten Seite des angegebenen Zeichens ('/' und '.' im Beispiel), was darauf hinweist, dass das angegebene Zeichen und der Inhalt dazu gehören rechts werden gelöscht. Die Positionen von „*“ können hier nicht vertauscht werden, d. h. das *-Zeichen darf nicht rechts von # oder ## platziert werden und umgekehrt.
Zum Beispiel: ${var%%x*} bedeutet, das letzte Zeichen x von rechts zu finden und das Zeichen x und die Zeichen rechts davon zu löschen.
Wenn Sie dies sehen, können Sie erkennen, dass dieser Befehl tatsächlich sehr vielseitig ist. Das Obige sind nur einige Sonderfälle zum Extrahieren der Benennungseigenschaften von Zeigerdateinamen und Verzeichnisnamen.
2. basename und dirname
${} sind keine Befehle, die speziell zum Extrahieren von Dateinamen und Verzeichnisnamen entwickelt wurden, daher sind die Befehle basename und dirname speziell dafür konzipiert .
1. Basisname
Die Funktion dieses Befehls besteht darin, den Dateinamen aus dem Pfad zu extrahieren. Die Verwendungsmethode ist Basisname NAME [SUFFIX].
1) Extrahieren Sie den Dateinamen (mit Suffix) aus dem Pfad. Das Beispiel lautet wie folgt:
2) Wie Sie an der Verwendung erkennen können des obigen Befehls ist das Suffix (SUFFIX) optional. Wenn Sie also nur den Dateinamen ohne Suffix extrahieren möchten, können Sie den Suffixnamen auch nach der Variablen hinzufügen. Das Beispiel lautet wie folgt:
2. dirname
Die Funktion dieses Befehls besteht darin, den Verzeichnisnamen aus dem Pfad zu extrahieren. Die Verwendungsmethode ist dirname NAME
Das Verwendungsbeispiel lautet wie folgt:
Auf diese Weise wird das Verzeichnis extrahiert, in dem sich die Datei file.txt befindet.
Hinweis: Dieser Befehl kann nicht nur das Verzeichnis extrahieren, in dem sich normale Dateien befinden, sondern auch das Verzeichnis, in dem sich eine beliebige Datei befindet, beispielsweise das Verzeichnis, in dem sich das Verzeichnis befindet, wie folgt:
Es extrahiert das Verzeichnis dir1, in dem sich das Verzeichnis dir2 befindet.
Das Obige ist der gesamte Inhalt dieses Artikels Lernen, und ich hoffe auch, dass jeder die chinesische PHP-Website unterstützt.
Eine weitere Linux-Shell-Zusammenfassung einiger Methoden zum Extrahieren von Dateinamen und Verzeichnisnamen finden Sie auf der chinesischen PHP-Website für verwandte Artikel!