我有一系列编号为 1-20 的文件,终端对它们进行如下排序:
episode1.txt episode10.txt episode11.txt episode12.txt
我想通过在数字前面插入 0 来重命名文件 1-9。我的代码如下:
for file in episode{1-9}.txt
do
rename -vs "episode"* "episode0"*
done
我也尝试过“mv”命令,但它不起作用。有人有什么建议吗?提前谢谢
答案1
要枚举序列,请使用{x..y}
而不是{x-y}
。
由于所有文件的名称都非常相似,我们可以使用参数扩展来截断前缀,episode
同时将其替换为episode0
。
完整命令如下:
for file in episode{1..9}.txt
do
mv "$file" "episode0${file#episode}"
done
${file#episode}
是一个参数扩展,在这种情况下,扩展参数file
同时删除匹配的最短前缀模式episode
。