Tengo un script bash que estoy tratando de reemplazar puntos en los nombres de archivo y reemplazarlos con guiones bajos, dejando la extensión intacta (estoy en Centos 6 por cierto). Como puede ver en el resultado a continuación, el script funciona cuando hay un punto para reemplazar, pero en los casos en que el único punto es la extensión, el script aún intenta cambiar el nombre del archivo, en lugar de ignorarlo. ¿Alguien puede señalar cómo debería manejar esto mejor? Gracias por cualquier ayuda.
Mi script (defectuoso):
#!/bin/bash
for THISFILE in *
do
filename=${THISFILE%\.*}
extension=${THISFILE##*\.}
newname=${filename//./_}
echo "mv $THISFILE ${newname}.${extension}"
#mv $THISFILE ${newname}.${extension}
done
Entrada de muestra:
1.3MN-Pin-Eurotunnel-Stw505.51.024-EGS-130x130.jpg
Wear-Plates.jpg
Salida:
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
archivos? Querrías que lo resuelvanfile.tar.gz
, nofile_tar.gz
.