Ich habe ein Bash-Skript, mit dem ich versuche, Punkte in Dateinamen zu ersetzen und durch Unterstriche zu ersetzen, wobei die Erweiterung intakt bleibt (ich bin übrigens auf Centos 6). Wie Sie der folgenden Ausgabe entnehmen können, funktioniert das Skript, wenn ein Punkt ersetzt werden muss. In Fällen, in denen der einzige Punkt die Erweiterung ist, versucht das Skript dennoch, die Datei umzubenennen, anstatt sie zu ignorieren. Kann jemand darauf hinweisen, wie ich besser damit umgehen soll? Vielen Dank für jede Hilfe.
Mein (fehlerhaftes) Skript:
#!/bin/bash
for THISFILE in *
do
filename=${THISFILE%\.*}
extension=${THISFILE##*\.}
newname=${filename//./_}
echo "mv $THISFILE ${newname}.${extension}"
#mv $THISFILE ${newname}.${extension}
done
Beispieleingabe:
1.3MN-Pin-Eurotunnel-Stw505.51.024-EGS-130x130.jpg
Wear-Plates.jpg
Ausgabe:
mv 1_3MN-Pin-Eurotunnel-Stw505_51_024-EGS1-130x130.jpg 1_3MN-Pin-Eurotunnel-Stw505_51_024-EGS1-130x130.jpg
mv Wear-Plates_jpg.Wear-Plates_jpg Wear-Plates_jpg.Wear-Plates_jpg
tar.gz
Dateien? Sie möchten, dass sie sich auflösenfile.tar.gz
, nichtfile_tar.gz
.