我有一个目录,文件名称为“a b c.jpg”,“d e f 0.jpg”,“g h i.jpg”
我需要一个脚本让所有以“ 0.jpg”结尾的文件变为“ _0.jpg”
因此,在上面的例子中,第二个文件应该变成“d e f_0.jpg”
答案 0 :(得分:5)
我认为您的问题应该是您希望以“0.jpg”结尾的文件变为“_0.jpg”(请注意第一个引号中的空格)。这对你的例子来说很有意义。
for i in *\ 0.jpg ; do
mv -- "$i" "${i/ 0.jpg/_0.jpg}"
done
也就是说,对于匹配模式“* 0.jpg”的每个文件,将其重命名为“0.jpg”替换为“_0.jpg”
修改:为了增加安全性,请考虑使用-n
(no-clobber)或-i
(互动)作为mv(1)
的选项。
答案 1 :(得分:1)
rename
工具可能就是您所需要的。
答案 2 :(得分:-3)
ls -1 | grep .jpg | awk -F "." '{print $1 "_0." $2}'