Saya memiliki skrip bash yang saya coba untuk mengganti titik-titik dalam nama file dan menggantinya dengan garis bawah, membiarkan ekstensi tetap utuh (saya berada di Centos 6 btw). Seperti yang Anda lihat dari output di bawah ini, skrip berfungsi ketika ada titik untuk diganti, tetapi dalam kasus di mana satu-satunya titik adalah ekstensi, skrip tetap mencoba untuk mengubah nama file, alih-alih mengabaikannya. Adakah yang bisa menunjukkan bagaimana saya harus menangani ini dengan lebih baik? Terima kasih atas bantuannya.
Skrip (salah) saya:
#!/bin/bash
for THISFILE in *
do
filename=${THISFILE%\.*}
extension=${THISFILE##*\.}
newname=${filename//./_}
echo "mv $THISFILE ${newname}.${extension}"
#mv $THISFILE ${newname}.${extension}
done
Input sampel:
1.3MN-Pin-Eurotunnel-Stw505.51.024-EGS-130x130.jpg
Wear-Plates.jpg
Keluaran:
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? Anda ingin mereka menyelesaikannyafile.tar.gz
, bukanfile_tar.gz
.