Lesen Sie den Dateinamen ohne Erweiterung in Bash

Lesen Sie den Dateinamen ohne Erweiterung in Bash
Linux -Benutzer müssen für viele Zwecke regelmäßig mit Dateien arbeiten. Manchmal müssen die Benutzer den Grundnamen der Datei nur durch Entfernen der Dateierweiterung lesen. Dateiname und Erweiterung können auf verschiedene Arten auf verschiedenen Variablen in Linux getrennt und gespeichert werden. Die Erweiterung des Bash-integrierten Befehls und der Shell-Parameterausdehnung kann verwendet werden, um die Erweiterung der Datei zu entfernen. Wie der Dateiname ohne Erweiterung unter Verwendung der oben genannten Wege gelesen werden kann, werden in diesem Tutorial erläutert.

Verwenden Sie den Befehl "BasisName" zum Lesen von Dateiname

Der Befehl 'BasisName' wird verwendet, um den Dateinamen ohne Erweiterung aus einem Verzeichnis oder Dateipfad zu lesen.

Syntax:

Name des Basisnamens [Suffix]

oder

Basisname -Option… Name…

Hier kann der Name den Dateinamen oder den Dateinamen mit vollem Pfad enthalten. Suffix ist optional und enthält den Dateierweiterungsteil, den der Benutzer entfernen möchte. Der Befehl 'BasisName' enthält einige Optionen, die unten beschrieben werden.

Optionen

Name Beschreibung
-A Es wird verwendet, um mehrere Dateinamen mit Pfad oder ohne Pfad als Befehlsargumente zu übergeben.
-S Es wird verwendet, um die Erweiterung als Suffix zu bestehen, das entfernen muss.
-z Es wird verwendet, um die mehreren Dateinamen anzuzeigen, indem jede Datei mit NULL getrennt wird.
-Hilfe Es wird verwendet, um die Informationen des Befehls "Basenname" anzuzeigen.
-Ausführung Es wird verwendet, um die Versionsinformationen anzuzeigen.

Beispiel 1: Verwenden von Namen und Suffix

Der folgende Befehl "Basenname" wird den Dateinamen mit Erweiterung abrufen. Suffix wird in diesem Befehl weggelassen. Hier ist die Ausgabe 'Produkt.txt'.

$ BASENAME/HOME/FAHMIDA/CODE/PRODUKT.txt

Wenn Sie den Dateinamen ohne Erweiterung abrufen möchten, müssen Sie die Dateierweiterung als Suffix mit dem Befehl "Basenname" angeben. Hier ist die Erweiterung ".txt". Führen Sie den folgenden Befehl aus, um die Erweiterung aus der Datei zu entfernen.

$ BASENAME/HOME/FAHMIDA/CODE/PRODUKT.txt .txt

Beispiel-2: Verwenden von '-a' Option und Name

Die Verwendung des Befehls von '-a' Option des 'Basennamens' wird in diesem Beispiel angezeigt. Hier werden zwei Dateipfade als Argumente mit dem Befehl „Basenname“ übergeben. Jeder Dateiname mit Erweiterung wird vom Pfad abgerufen und nach Newline gedruckt.

$ BasisName -a/home/fahmida/Index.html/home/fahmida/code/emp.txt

Beispiel-3: Verwenden von '-z' Option und Name

Die Option '-z' wird mit dem Befehl 'BasisName' verwendet, um die Mehrfachdateinamen mit Nullwert anstelle von Newline zu drucken. Der folgende Befehl verwendet zwei Optionen zusammen, '-a' und '-z'. Hier zwei Dateinamen, Index.html Und EMP.txt wird ohne Platz oder neue Linie drucken.

$ BASENAME -AZ/HOME/FAHMIDA/INDEX.html/home/fahmida/code/emp.txt

Beispiel-4: Verwenden von '-s' Option und Name

Der folgende Befehl kann als Alternative zum Suffix mit "Basenname" verwendet werden. Die Dateierweiterung muss mit der Option "-sh" übergeben, um die Dateierweiterung aus der Datei zu entfernen. Das folgende Beispiel entfernen die Erweiterung "-Sh" aus der Datei "Addition".Sch'.

$ BASENAME -S .SH Addition.Sch

Beispiel-5: Dateierweiterung ohne Suffix entfernen

Wenn Sie die Erweiterung der Datei, die Sie aus dem Dateinamen entfernen möchten, nicht kennen, hilft Ihnen dieses Beispiel, das Problem zu lösen. Erstellen Sie eine Datei mit dem Namen Read_file.Sch mit dem folgenden Code, um den Dateinamen einer Erweiterung abzurufen. In diesem Beispiel wird der Befehl 'SED' verwendet, um jede Art von Erweiterung aus dem Dateinamen zu entfernen. Wenn Sie das Skript ausführen, ist die Ausgabe 'Durchschnitt"Nach dem Entfernen der Erweiterung"py''.

Read_file.Sch

#!/Bin/Bash
# Setzen Sie den Dateinamen mit Pfad
Dateiname = "/home/fahmida/code/durchschnittlich.py "
# Lesen Sie den Dateinamen ohne Erweiterung mit dem Befehl "Basname" und "SED" ohne Erweiterung
echo "$ (Basename" $ ​​Dateiname "| sed 's/\ (.*\) \… */\ 1/') "

Führen Sie das Skript aus.

$ bash read_file.Sch

Beispiel-6: Die Dateierweiterung von TXT in docx konvertieren

Dateiname ohne Erweiterung muss die Datei von einer Erweiterung in eine andere konvertieren. Dieses Beispiel zeigt, wie Sie die Erweiterung aller Textdateien ändern können (.txt) in die Wortdateien (.docx) mit dem Befehl "Basenname" im Bash -Skript verwendet. Erstellen Sie eine Datei mit dem Namen, convert_file.Sch mit dem folgenden Code. Hier wird eine For-In-Schleife verwendet, um alle Textdateien mit zu lesen “.txt" Erweiterung aus dem aktuellen Verzeichnis. Der Dateiname ohne Erweiterung wird durch den Befehl "Basenname" gelesen und durch Hinzufügen umbenannt ".DOCX ”Erweiterung in jeder Iteration der Schleife.

convert_file.Sch

#!/Bin/Bash
# Die Schleife liest jede Textdatei aus dem aktuellen Verzeichnis
für Dateiname in 'ls *.txt'
Tun
# Drucken Sie den Text -Dateinamen vor der Konvertierung aus
Echo "Dateiname vor der Konvertierung: $ Dateiname"
# Ändern Sie die Erweiterung der Datei txt in docx
MV - "$ Dateiname" "$ (BASENAME -" $ Dateiname " .txt).docx "
Erledigt

Führen Sie das Skript aus.

$ bash convert_file.Sch

Überprüfen Sie, ob die Textdateien konvertiert werden oder nicht, indem Sie den Befehl "LS" verwenden.

$ ls

Beispiel-7: Lesen Sie den Dateinamen ohne Erweiterung mithilfe der Shell-Parameterweiterung

Die Expansion der Shell -Parameter ist eine weitere Möglichkeit, den Dateinamen ohne Erweiterung in Bash zu lesen. Dieses Beispiel zeigt die Verwendung der Shell -Parameterausdehnung. Der folgende Befehl speichert den Datei -Pfadnamen in der Variablen, $Dateinamen.

$ Dateiname = "/var/usr/temp/myfile.Teer.GZ "

Der folgende Befehl entfernen alle Erweiterungsarten aus dem Pfad und speichert den Dateipfad ohne Erweiterung in der Variablen, $ file1.

$ file1 = "$ Dateiname %%.* "

Der folgende Befehl druckt den Dateinamen nur vom Pfad aus. Hier wird die Ausgabe 'meine Datei''.

$ echo "$ file1 ##*/"

Wenn der Dateiname zwei Erweiterungen mit zwei Punkten enthält (.) und Sie möchten den Dateinamen lesen, indem Sie die letzte Erweiterung der Datei entfernen, dann müssen Sie den folgenden Befehl verwenden. Führen Sie den folgenden Befehl aus, der den Dateipfad in die Variable speichert, $ file2 Durch Entfernen der letzten Erweiterung der Datei.

$ file2 = "$ Dateiname%.* "

Führen Sie nun den folgenden Befehl aus, um den Dateinamen mit einem Punkt zu drucken (.) Verlängerung. Hier wird die Ausgabe sein "meine Datei.Teer".

$ echo "$ file2 ##*/"

Abschluss

Dateiname ohne Erweiterung ist für verschiedene Zwecke erforderlich. Einige Verwendungen von Dateinamen ohne Erweiterung werden in diesem Tutorial unter Verwendung einiger Beispiele wie der Dateikonvertierung erläutert. Dieses Tutorial hilft den Benutzern, die interessiert sind, die Möglichkeiten zu lernen, um den Dateinamen und die Erweiterung vom Dateipfad zu trennen. Hier werden zwei Möglichkeiten erklärt. Der Benutzer kann diese Möglichkeiten befolgen, den Dateinamen nur aus dem Dateipfad zu extrahieren.