我开始学习Shell Scripting。我想按顺序重命名文件夹名称。我有一些文件夹来自1,2,3 ...... 1000.现在我想通过shell脚本分别重命名它1501,1502,... 2500。如何做到这一点。 谢谢你的帮助
答案 0 :(得分:2)
如果你开始考虑它,它真的很容易,不好解释一下:
你经历了从1到1500的每个数字
并将其重命名为index + 1500
:
要添加数字,如果您在bash
上,则可以使用算术运算
如果您只是在shell环境中,则使用命令bc
。
(我将使用bc
,因为它应该可以在任何地方使用)
使用命令seq 1500
- >输出为:1 2 3 ... 1500
制作for循环:for f in $(seq 1500); do ###later###; done
所以当前号码($f
)是文件夹名称
新名称将是当前号码($f
)+ 1500:
(因为您希望文件夹1成为新文件夹1501)
newname=$(echo "$f + 1500" | bc)
然后你只需说mv $f $newname
完了:))
最终剧本:
内联版本:
for f in $(seq 1500); do mv $f $(echo "$f + 1500" | bc); done
'更好的' (更易阅读)版本:
for f in $(seq 1500); do
newname=$(echo "$f + 1500" | bc)
mv $f $newname
done
如果你想使用bash算术运算:
将$(echo "$f + 1500" | bc)
替换为$(($f + 1500))
我希望我能帮助你一点:)
答案 1 :(得分:1)
如果您的文件夹具有完全相同的名称,则下面的代码将起作用...您可以在其他情况下即兴创作。如果命名和重命名模式不同,您可能必须略有不同。
for (( sourcedir=1,destdir=1501; sourcedir<=1000;sourcedir++,destdir++ ))
do
mv "$sourcedir" "$destdir"
done