Einleitung
Es gibt viele Gründe, warum Sie den Dateinamen und die Erweiterung einer Datei in Bash extrahieren möchten:
-
Um den Dateinamen oder die Erweiterung zu manipulieren – Möglicherweise möchten Sie den Dateinamen oder die Erweiterung extrahieren, um ihn zu ändern, z. B. ein Präfix oder Suffix zum Dateinamen hinzuzufügen oder die Dateierweiterung zu ändern.
-
So erstellen Sie eine Datei mit einem eindeutigen Namen – Möglicherweise möchten Sie den Dateinamen und die Erweiterung extrahieren, um eine neue Datei mit einem eindeutigen Namen zu erstellen, indem Sie beispielsweise einen Zeitstempel oder eine Zufallszahl zum Dateinamen hinzufügen.
-
Um den Dateinamen oder die Erweiterung in einem Skript oder Befehl zu verwenden – Möglicherweise möchten Sie den Dateinamen oder die Erweiterung extrahieren, um ihn als Argument oder Eingabe für ein Skript oder einen Befehl zu verwenden, beispielsweise um ihn an ein Programm zu übergeben oder eine Datei mit demselben Namen wie ein Verzeichnis zu erstellen.
-
Um Informationen aus dem Dateinamen oder der Erweiterung zu extrahieren – Möglicherweise möchten Sie den Dateinamen oder die Erweiterung extrahieren, um daraus Informationen wie das Datum oder den Dateityp zu extrahieren.
In diesem Artikel werfen wir einen Blick auf die drei gängigsten Methoden zum Extrahieren von Dateinamen und Dateierweiterungen in Bash. Wir werfen einen Blick auf jeden von ihnen und erläutern Ihnen die Vor- und Nachteile, damit Sie eine fundierte Entscheidung darüber treffen können, welcher Ansatz am besten zu Ihnen passt.
Methode 1: Verwenden der Basisname Befehl
Das basename
Mit dem Befehl können Sie den Dateinamen und die Erweiterung aus einem Dateipfad extrahieren:
filename=$(basename /path/to/file.txt)
echo $filename
Obwohl diese Methode recht einfach und benutzerfreundlich ist, gibt es leider keine Möglichkeit, nur den Dateinamen (ohne Erweiterung) ohne Nachbearbeitung zu extrahieren.
Sie können auch die Tasten dirname
Befehl zum separaten Extrahieren des Verzeichnispfads:
directory=$(dirname /path/to/file.txt)
echo $directory
Vorteile:
- Einfach zu bedienen
- Behandelt Dateinamen mit Leerzeichen korrekt
Nachteile:
- Extrahiert nur den Dateinamen und kann die Erweiterung nicht ohne zusätzliche Verarbeitung separat extrahieren
Methode 2: Verwenden der Parametererweiterung
Bash bietet eine Funktion namens Parametererweiterung, mit dem Sie Teile einer Variablen mithilfe einer speziellen Syntax extrahieren können. Sie können beispielsweise die folgende Syntax verwenden, um den Dateinamen und die Erweiterung aus einem in einer Variablen gespeicherten Dateipfad zu extrahieren:
filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename
Sie können die Parametererweiterung auch verwenden, um die Erweiterung separat zu extrahieren:
extension=${filename##*.}
echo $extension
Vorteile:
- Flexibel
- Kann sowohl den Dateinamen als auch die Erweiterung separat extrahieren,
- Behandelt Dateinamen mit Leerzeichen korrekt
Nachteile:
- Erfordert eine Variable zum Speichern des Dateipfads
Methode 3: Verwenden der awk Befehl
Das awk
Der Befehl ist ein leistungsstarkes Textverarbeitungstool, mit dem Teile einer Zeichenfolge extrahiert werden können. Sie können beispielsweise die folgende Syntax verwenden, um den Dateinamen und die Erweiterung aus einem Dateipfad zu extrahieren:
filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename
Sehen Sie sich unseren praxisnahen, praktischen Leitfaden zum Erlernen von Git an, mit Best Practices, branchenweit akzeptierten Standards und einem mitgelieferten Spickzettel. Hören Sie auf, Git-Befehle zu googeln und tatsächlich in Verbindung, um es!
Sie können auch awk
So extrahieren Sie die Erweiterung separat:
extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension
Vorteile:
- Kraftvoll
- Kann sowohl den Dateinamen als auch die Erweiterung separat extrahieren
- Behandelt Dateinamen mit Leerzeichen korrekt
Nachteile:
- Die Syntax ist für einige Benutzer möglicherweise unbekannt
- Erfordert die Weiterleitung des Dateipfads
awk
Zusammenfassung
Insgesamt kann das Extrahieren des Dateinamens und der Erweiterung einer Datei in Bash eine nützliche Technik für die Arbeit mit Dateien und die Ausführung verschiedener Aufgaben in der Bash-Shell sein.
Jede der genannten Methoden hat ihre eigenen Vor- und Nachteile und die beste Wahl hängt von Ihren spezifischen Bedürfnissen und Vorlieben ab. Es ist oft hilfreich, mehrere Ansätze zu kennen, damit Sie den für Ihre Situation am besten geeigneten auswählen können.