Eu tenho um script bash que estou tentando substituir pontos nos nomes de arquivos e substituí-los por sublinhados, deixando a extensão intacta (estou no Centos 6 btw). Como você pode ver na saída abaixo, o script funciona quando há um ponto a substituir, mas nos casos em que o único ponto é a extensão, o script ainda tenta renomear o arquivo, em vez de ignorá-lo. Alguém pode apontar como devo lidar melhor com isso? Obrigado por qualquer ajuda.
Meu script (defeituoso):
#!/bin/bash
for THISFILE in *
do
filename=${THISFILE%\.*}
extension=${THISFILE##*\.}
newname=${filename//./_}
echo "mv $THISFILE ${newname}.${extension}"
#mv $THISFILE ${newname}.${extension}
done
Entrada de amostra:
1.3MN-Pin-Eurotunnel-Stw505.51.024-EGS-130x130.jpg
Wear-Plates.jpg
Resultado:
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
arquivos? Você gostaria que eles resolvessemfile.tar.gz
, nãofile_tar.gz
.