So extrahieren Sie den Dateinamen und die Erweiterung in Bash

So extrahieren Sie den Dateinamen und die Erweiterung in Bash

Bash ist eine leistungsstarke Befehlszeilenschale, die üblicherweise in Linux- und Unix-Betriebssystemen verwendet wird. Eine gemeinsame Aufgabe beim Arbeiten mit Dateien in Bash besteht darin, den Dateinamen und die Erweiterung aus einem Dateipfad zu extrahieren. In diesem Artikel wird erläutert, wie der Dateiname und die Erweiterung in Bash extrahiert werden und Beispiele für die Verwendung dieser Werte in Ihren Skript.

Extrahieren des Dateinamens und der Erweiterung in Bash

Es gibt verschiedene Möglichkeiten, den Dateinamen und die Erweiterung in Bash zu extrahieren. Hier sind drei gängige Methoden:

  • Verwenden von Basisname -Befehl
  • Verwendung der Parameterausdehnung
  • Verwenden der IFS -Variablen (interner Feldabscheider)

1: Verwenden Sie den Befehl Basenname

Der Grundname Der Befehl gibt den Dateinamen aus einem Dateipfad zurück und extrahiert den Dateinamen und die Erweiterung. Du kannst den ... benutzen Grundname Befehl mit dem -Suffix Option, die das angegebene Suffix aus dem Dateinamen wie im untergegebenen Code entfernt:

#!/Bin/Bash
# Beispieldateipfad
Datei_path = "/path/to/Datei.txt"
# Dateiname extrahieren
Dateiname = $ (BASENAME $ file_path)
# Extract -Erweiterung
extension = "$ Dateiname ##*. "
Echo "Dateiname: $ Dateiname"
Echo "Erweiterung: $ Extension"

2: Verwenden der Parameterausdehnung

Der Parameterausdehnung Syntax ist ein leistungsstarkes Merkmal von Bash, mit dem Sie Saiten manipulieren können. Um den Dateinamen und die Erweiterung mithilfe der Parameterausdehnung zu extrahieren, können Sie die verwenden $ Parameter ## Word Syntax, die die längste Übereinstimmung des angegebenen Musters vom Beginn des Parameters wie im folgenden Code entfernt:

#!/Bin/Bash
# Beispieldateipfad
Datei_path = "/path/to/Datei.txt"
# Dateiname extrahieren
fileName = "$ file_path ##*/"
# Extract -Erweiterung
extension = "$ Dateiname ##*. "
Echo "Dateiname: $ Dateiname"
Echo "Erweiterung: $ Extension"

3: Verwenden der IFS -Variablen (interner Feldabscheider)

Der IFS Variable wird von Bash verwendet, um Strings in Felder zu teilen, indem die festgelegt wird IFS Variable zum Pfadabscheider ("/"). Sie können den Dateinamen und die Erweiterung durch einen Dateipfad über diese Variable mit dem untergegebenen Code extrahieren:

#!/Bin/Bash
# Beispieldateipfad
Datei_path = "/path/to/Datei.txt"
# IFS auf "/" einstellen
Ifs = "/" lesen -r -a -Teile <<< "$file_path"
# Dateiname extrahieren
Dateiname = "$ parts [-1]"
# Extract -Erweiterung
extension = "$ Dateiname ##*. "
Echo "Dateiname: $ Dateiname"
Echo "Erweiterung: $ Extension"

Abschluss

Das Extrahieren des Dateinamens und der Erweiterung aus einem Dateipfad ist eine häufige Aufgabe, wenn Sie mit Dateien in Bash arbeiten. In diesem Artikel wurden drei gängige Methoden zum Extrahieren des Dateinamens und der Erweiterung in Bash erörtert. Durch Verwendung der Grundname Befehl, der Parameterausdehnung Syntax oder die IFS Variable, Sie können den Dateinamen und die Erweiterungswerte schnell und einfach aus einem Dateipfad extrahieren.