Extrahieren Sie den Dateibasisname ohne Pfad und Erweiterung in Bash
Um den Grundnamen einer Datei ohne Pfad und Erweiterung zu extrahieren. Der Befehl BasisName gibt die letzte Komponente eines Pfadnamens zurück, der in unserem Fall der Dateiname mit seiner Erweiterung wäre. Wenn wir jedoch die Option Suffix angeben, können wir die Erweiterung aus dem Dateinamen entziehen. Hier finden Sie einen Beispiel -Bash -Code:
#!Bin/Bash
filepath =/home/aaliyan/bash3.Sch
S = $ (BASENAME $ filepath)
echo "$ s%.* "
Das obige Bash -Skript definiert eine Variable namens “Dateipfad”Und weist ihm den Pfad der Datei zu“/home/aaliyan/bash3.Sch“. Das Skript verwendet dann den Befehl Basename, um den Grundnamen der Datei aus dem Dateipfad zu extrahieren, und weist das Ergebnis einer Variablen mit dem Namen "S" zu.
Die zweite Parameterausdehnung beseitigt die Erweiterung aus dem Dateinamen, indem die kürzeste Übereinstimmung einer beliebigen Anzahl von Zeichen entfernt wird, gefolgt von einem Punkt mit „%.*". Die resultierende Zeichenfolge "Bash3" wird dann mit dem Echo -Befehl in die Konsole gedruckt:
Eine andere Möglichkeit, den Grundnamen einer Datei ohne Dateipfad und -verlängerung zu extrahieren, besteht darin, die Parameterausdehnung zu verwenden, die ohne den Befehl BasisName verwendet wird. Im Folgenden finden Sie den Beispiel -Bash -Code, der die Parameter -Expansionsmethode verwendet, um den Basisnamen einer Datei ohne Datei zu erhalten Pfad- und Dateierweiterung:
#!Bin/Bash
filepath =/home/aaliyan/bash3.Sch
s = $ filepath ##*/
echo "$ s%.* "
Dies ist ein Bash -Skript, das eine Variable namens "Filepath" definiert und es den Wert zuweist "/home/aaliyan/bash3.Sch“. Das Skript verwendet dann die Parameter -Expansionsfunktion von Bash zweimal, um den Grundnamen der Datei ohne Pfad und Erweiterung zu extrahieren. Insbesondere die erste Parameterausdehnung beseitigt den Pfad aus dem Dateinamen, indem die längstmögliche Übereinstimmung einer beliebigen Anzahl von Zeichen entfernt wird, gefolgt von einem Stürmerstrich unter Verwendung von "##/".
Die resultierende Zeichenfolge “bash3.Sch"Wird dann einer Variablen namens" S "zugewiesen. Die zweite Parameterausdehnung beseitigt die Erweiterung aus dem Dateinamen, indem die kürzeste Übereinstimmung einer beliebigen Anzahl von Zeichen entfernt wird, gefolgt von einem Punkt mit „%.”. Die resultierende Zeichenfolge "Bash3" wird dann mit dem Echo -Befehl in die Konsole gedruckt:
Abschluss
Das Extrahieren des Grundnamens einer Datei ohne Pfad und Erweiterung ist eine häufige Aufgabe beim Bash -Skripting. Durch die Verwendung des Basisname -Befehls in Kombination mit den Merkmalen der Parametersubstitution und der Parameterausdehnung von BASH können wir diese Aufgabe problemlos erfüllen. Dies kann nützlich sein, wenn Sie mit Dateinamen in Skripten arbeiten, beispielsweise beim Umbenennen von Dateien oder beim Ausführen von Operationen in Dateien mit ähnlichen Namen.