Das Bash-Script

1
2
3
4
5
#!/bin/bash
# Script: chext (change extensions)
# Usage: chext old new
echo Aendere Endungen von $1 nach $2
for i in *.$1; do mv $i ${i%$1}$2 ; done

Beispiel:

Ich habe ein Verzeichnis in dem etliche Bilder mit der Endung .JPG sind, und möchte diese nun in .jpg ändern, rufe ich in diesem Verzeichnis einfach das Script auf.

1
chext JPG jpg

Fertig :-)

Anmerkung

Einen kleinen Schwachpunkt hat dieses Script allerdings. Bei Dateinamen, welche Leerzeichen, Umlaute oder andere Zeichen die in der Linuxkonsole mit einem \ escaped werden müssen enthalten, verweigert es den Dienst, aber vielleicht bekomme ich das irgendwann mal so hin, das solche Zeichen einfach durch ein – ersetzt werden. Wer dazu Ideen hat, darf sich hier gerne melden.

Update (23. 05. 2013)

Ne Weile hats gedauert, aber ich hab mich mal wieder diesem kleinen Script angenommen. Nu klappt es auch mit Dateinamen die Leerzeichen oder so enthalten.

1
2
3
4
5
6
7
8
9
#!/bin/bash
# Script: chext (change extensions)
# Usage: chext old new
echo Aendere Endungen von $1 nach $2

for i in *.$1; do
    echo "$i => ${i%$1}$2";
    mv "$i" "${i%$1}$2";
done

Schreibe einen Kommentar

Ihre Email-Adresse wird nicht veröffentlicht. Pflichtfelder sind durch * markiert.

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>