PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiname auslesen



ajqwak
18.03.2004, 09:25
Hallo zusammen,

ich habe ein eigentlich banales Problem:

in einem Skript soll eine Datei bearbeitet werden. Die Ausgabedatei soll dann eine neue Endung erhalten.

Bsp.:
bash$ make_mp3 xyz.wav soll die Datei xyz.mp3 ergeben.

Ich denke ihr könnt mir da weiterhelfen.

Besten Dank
ajqwak

buffer_7
18.03.2004, 11:29
Mahlzeit,

ich kann Dir nicht folgen, was Du meinst und wo Dein Problem ist. Vielleicht kannst Du mehr Infos rüberkommen lassen?
Oder Deine Situation ausfürlicher beschreiben.

mfg

buffer_7

ajqwak
18.03.2004, 12:49
Servus buffer_7,

ich möchte einen Dateinamen in Namen und Erweiterung zerstückeln. Wenn ich zum Beispiel ein Skript über meine Dateien laufen lasse, so kommt idR eine Doppelendung raus, wie zB: xyz.wav.mp3.

Das mag ich aber nicht und würde deswegen den Dateinamen der Eingangsdatei in Name (xyz) und Endung (wav) aufsplitten und die temporäre Ausgangsdatei (xyz.wav.mp3) auf den neuen Dateinamen (xyz.mp3) umbenennen. Dieser Dateiname setzt sich wieder aus dem Namen (xyz) und der neuen Endung (mp3) zusammen.

Na dann bis später
ajqwak

oenone
18.03.2004, 16:10
DATEINAME=xyz.wav
NEUNAME=${DATEINAME%.wav}.mp3

oder komplexer:
OLD_NAME=xyz.wav
OLD_SUFFIX=.wav
NEW_SUFFIX=.mp3
NEW_NAME=${OLD_NAME%${OLD_SUFFIX}}${NEW_SUFFIX}

auf bald
oenone

ajqwak
18.03.2004, 17:14
Danke. Habe mittlerweile auch 'ne Lösung gefunden:


echo "`basename \"$1\" .wav`.mp3"

Jetzt weiß ich zwar nicht warum das so aussehen muss, aber es funktioniert ...

Grüße

oenone
18.03.2004, 21:01
naja... aber bedenke: du rufst ein externes programm in einer subshell auf...
wenn du es so wie ich es gezeigt habe machst, wird das alles direkt in der gleichen shell gemacht (ist in die shell eingebaut) :)

auf bald
oenone