So extrahieren Sie Dateiname und Erweiterung im Shell -Skript

So extrahieren Sie Dateiname und Erweiterung im Shell -Skript

Um den Dateinamen und die Erweiterung aus einem Dateipfad in einem Shell -Skript zu extrahieren, können Sie die verwenden "Grundname" Befehl.

Hier ist ein Beispiel dafür, wie Sie verwenden können Grundname um die zu extrahieren Dateinamen Und Verlängerung Aus einem bestimmten Dateipfad:

#!/usr/bin/env bash # Definieren Sie einen Dateipfad filepath = "/var/log/mail.Protokollieren " # extrahieren Sie den Dateinamen und die Erweiterung aus dem Dateipfad Dateiname = $ (Basisname" $ ​​filepath ") # Extrahieren Sie die Erweiterung aus Dateipfadweiterung =" $ FileName ##*. " # Extrahieren Sie den Dateinamen ohne die Erweiterung Dateiname =" $ Dateiname%.* "
12345678910111213#!/usr/bin/env bash # Definieren Sie eine Datei pathFilepath = "/var/log/mail.Log " # extrahieren. " # Extrahieren Sie den Dateinamen ohne die ErweiterungFileName =" $ Dateiname%.* "

In diesem Beispiel '$ filepath'Ist der Dateipfad, aus dem Sie den Dateinamen und die Erweiterung extrahieren möchten. Der Grundname Befehl extrahiert die Dateinamen Und Verlängerung vom Dateipfad und speichert es in der Dateinamen Variable.

Der Verlängerung Variable wird dann nach dem letzten auf die Zeichenfolge eingestellt . Zeichen in der Dateinamenvariable mit dem ## Parameterausdehnung Operator.

Der Dateinamen Variable wird dann vor dem letzten auf die Zeichenfolge eingestellt . Charakter in der Dateinamen Variable verwendet die % Parameterausdehnung Operator.

Dies wird die extrahieren Dateinamen Und Verlängerung Aus dem Dateipfad und speichern Sie sie im Dateinamen- und Erweiterungsvariablen.

Sie können diese Variablen nach Bedarf in Ihrem Skript verwenden. Zum Beispiel können Sie die verwenden Dateinamen Und Verlängerung Variablen, um den Typ einer Datei zu überprüfen oder umzubenennen.

1. Holen Sie sich den Dateinamen ohne Pfad

Entfernen Sie zunächst den vollständigen Dateipfad vom Eingabedateinamen. Zum Beispiel, wenn der Dateiname -Eingang als “/Var/log/mail.Protokoll" Dann extrahieren Sie den vollständigen Dateinamen Post.Protokoll nur.

#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dateiname = $ (BASENAME" $ filepath ") echo" Voller Dateiname: $ Dateiname "
123456#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dateiname = $ (BASENAME" $ filepath ") echo" Voller Dateiname: $ Dateiname "

Die Ausgabe wird sein:

Voller Dateiname: Mail.Protokoll 

2. Dateiname ohne Erweiterung

Extrahieren Sie nun den Dateinamen ohne Erweiterung aus extrahiertem Vollfileinname ohne einen Pfad wie oben.

#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dateiname = $ (BASENAME" $ filepath ") Dateiname =" $ Dateiname%.* "echo" Dateiname ist: $ Dateiname "
123456#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dateiname = $ (BASENAME" $ filepath ") Dateiname =" $ Dateiname%.* "echo" Dateiname ist: $ Dateiname "

Die Ausgabe wird sein:

Dateiname lautet: Mail 

3. Holen Sie sich nur Erweiterung

Extrahieren Sie nun die Dateierweiterung ohne Namen aus extrahierten vollständigen Dateinamen ohne Pfad.

#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dateiname = $ (BASENAME" $ filepath ") Erweiterung =" $ Dateiname ##*. "Echo" Erweiterung: $ Extension "
1234567#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dateiname = $ (BASENAME" $ filepath ") Erweiterung =" $ Dateiname ##*. "Echo" Erweiterung: $ Extension "

Die Ausgabe wird sein:

Erweiterung: Protokoll 

4. Verzeichnispfad extrahieren

Sie können auch die verwenden "Dirname" Befehl zum Extrahieren des Verzeichnispfads aus dem vollständigen Dateipfad. Zum Beispiel:

#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dir = $ (DirName" $ ​​filepath ") echo" Verzeichnis: $ dird ""
123456#!/usr/bin/env bash filepath = "/var/log/mail.Protokoll "Dir = $ (DirName" $ ​​filepath ") echo" Verzeichnis: $ dird ""

Die Ausgabe wird sein:

Verzeichnis:/var/log/ 

Abschluss

Mit dieser schnellen Anleitung können Sie verstehen, wie Sie einen Dateinamen und eine Erweiterung aus dem Dateipfad extrahieren können. Denken Sie daran, dass diese Befehle nur mit der Bash -Shell funktionieren. Wenn Sie eine andere Shell verwenden, müssen Sie möglicherweise eine andere Syntax verwenden.