我有一个文件夹FOLDER1,里面有不同的文件。
我在文件夹中有几个文件,扩展名为.png
我想用bash脚本更改扩展名为.png的所有文件的文件名。我试着写一个,但我还没有到达我想要的东西。
#!/bin/bash
# make sure you always put $f in double quotes to avoid any nasty surprises i.e. "$f"
i=0
for f in *.png
do
echo "${i}Processing $f file..."
i+=1;
echo ${i}
# rm "$f"
done
在脚本结束时,我希望将所有文件命名为:
C-1.png
C-2.png
c-3.png
...
...
...
你可以帮帮我吗? 感谢答案 0 :(得分:1)
首先请注意:
i+=1
是字符串添加。你正在做的是0,01,011,0111 ......你需要:
((++i))
接下来,您需要拆分文件名,如果是“。”只出现一次:
base=$(echo $f | cut -d. -f1)
最后搬家:
mv $f ${base}-${i}.png
答案 1 :(得分:1)
抱歉,我找到了解决办法。
此代码运行正常。
#!/bin/bash
# make sure you always put $f in double quotes to avoid any nasty surprises i.e. "$f"
i=0
for f in *.png
do
echo "$i Processing $f file..."
i=$((i+1))
mv $f "c-"$i.png
#echo ${i}
done
答案 2 :(得分:1)
#!/bin/bash
i=0
for f in *.png
do
echo "${i}Processing $f file..."
i=$((i + 1))
newname="c-${i}.png"
mv "$f" $newname
done