Der Name des Verzeichnisses ist bekannt, und es ist bekannt, dass alle Dateien in diesem Verzeichnis die gleiche Erweiterung haben. Ich muss nur eine Erweiterung extrahieren und sie einer Variablen zuweisen.Wie extrahiere ich die Erweiterung einer Datei in einem Verzeichnis?
Ich habe ein Skript, das verschiedene Routinen abhängig vom Inhalt eines Verzeichnisses nimmt. Wenn der Ordner beispielsweise jpg
Dateien enthält, führt das Skript verschiedene Aktionen für tiff
Dateien aus. Mein Skript muss nicht die Namen der Dateien oder die Nummern, nur ihre Erweiterungen kennen. Also muss ich eine Erweiterung einer beliebigen Datei extrahieren (alle Dateien haben die gleiche Erweiterung) und sie einer Variablen zuweisen.
Ich habe versucht, so etwas zu tun:
variable=$(basename "/path/dir/*")
extension="${variable##*.}"
wo "*"
Wildcard alle Dateien auflistet. Ich brauche nur eine Erweiterung.
Was meinst du mit der Erweiterung einer unbekannten Datei? Es gibt den Befehl 'file', der den Typ der Datei angibt. Fragen Sie nach einem Bash-Skript, das nur die Erweiterung eines bestimmten Dateinamens extrahiert? – varlogtim
Verzeichnis ist bekannt, Dateiname ist unbekannt und muss nicht den Namen oder wie viele es gibt. In meinem Skript ist nur eine Dateierweiterung erforderlich. – siamak
Können Sie ein Beispiel für den Verzeichnisinhalt und was Sie benötigen im Skript zur Verfügung stellen? – varlogtim