J'ai un script bash que j'essaie d'obtenir pour remplacer les points dans les noms de fichiers et les remplacer par des traits de soulignement, en laissant l'extension intacte (je suis sur Centos 6 btw). Comme vous pouvez le voir sur la sortie ci-dessous, le script fonctionne lorsqu'il y a un point à remplacer, mais dans les cas où le seul point est l'extension, le script essaie toujours de renommer le fichier, au lieu de l'ignorer. Quelqu'un peut-il indiquer comment je devrais mieux gérer cela? Merci pour toute aide.
Mon script (défectueux):
#!/bin/bash
for THISFILE in *
do
filename=${THISFILE%\.*}
extension=${THISFILE##*\.}
newname=${filename//./_}
echo "mv $THISFILE ${newname}.${extension}"
#mv $THISFILE ${newname}.${extension}
done
Exemple d'entrée:
1.3MN-Pin-Eurotunnel-Stw505.51.024-EGS-130x130.jpg
Wear-Plates.jpg
Production:
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
fichiers? Vous voudriez qu'ils se résolventfile.tar.gz
, nonfile_tar.gz
.