Ho uno script bash che sto cercando di sostituire i punti nei nomi dei file e sostituirli con caratteri di sottolineatura, lasciando intatta l'estensione (sono su Centos 6 btw). Come puoi vedere dall'output seguente, lo script funziona quando è presente un punto da sostituire, ma nei casi in cui l'unico punto è l'estensione, lo script tenta comunque di rinominare il file, invece di ignorarlo. Qualcuno può indicare come dovrei gestirlo meglio? Grazie per qualsiasi aiuto.
Il mio script (difettoso):
#!/bin/bash
for THISFILE in *
do
filename=${THISFILE%\.*}
extension=${THISFILE##*\.}
newname=${filename//./_}
echo "mv $THISFILE ${newname}.${extension}"
#mv $THISFILE ${newname}.${extension}
done
Input di esempio:
1.3MN-Pin-Eurotunnel-Stw505.51.024-EGS-130x130.jpg
Wear-Plates.jpg
Produzione:
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
file? Vorresti che si risolvesserofile.tar.gz
, nofile_tar.gz
.