从非零起始索引批量重命名文件

从非零起始索引批量重命名文件

我正在合并两个数据集,它们的格式为40000X-????.mrc.然而,它们都以0000.因此,我想在第一个数据集结束后启动第二个数据集(如果第一个数据集有 12 个文件,那么我希望第二个数据集以 开头40000X-0013.mrc,依此类推)。

我在网上找到了一些部分答案,所以我的代码如下:

#!/usr/bin/env bash
c=12
for f in *.mrc ; do
  mv -v "$f" "40000X-$(printf '%0*d' 4 $c).mrc"
  let c=c+1
done

预期结果:按顺序重命名所有文件,从 12 开始,一直持续到处理完所有文件为止。

实际结果:由于-v选项的原因,它实际上声称已重命名所有文件,但在检查目录时,似乎只保留了最后 12 个文件。从测试来看,这取决于起始索引c,如果我改变它,它确实可以迭代更多,但它会弄乱起始索引。

如有任何帮助,我们将不胜感激。

相关内容