使用终端重命名某些编号的文件

使用终端重命名某些编号的文件

我有一系列编号为 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

相关内容