使用带编号的文件名重命名bash中的文件

时间:2016-10-15 00:07:17

标签: bash copy-paste file-rename

在一个文件夹中,我有许多文件,其名称如MR000001,MR000002等,最高可达MR000070。我有很多这样的文件夹。我想将所有文件复制到一个文件夹并重命名,以便数字继续增加。例如,当复制第二批70时,我想重命名这些文件,使它们从71开始,然后转到140;在复制第三批时,我希望他们的名字从141开始,然后转到210.如何使用bash脚本完成此操作?到目前为止,我有这个:

for f in MR0000*;
do 
  cp "$f" "";
done

我想我应该能够用满足我想要的东西来填空,但我不知道是什么。

1 个答案:

答案 0 :(得分:0)

一种方式:

dst_dir=where/you/want/these/files/to/end/up/
dst_filenumber=0
for src_dir in where/they/are/now/1 where/they/are/now/2 ; do
  for src_filepath in "$src_dir"/MR0000* ; do
    (( dst_filenumber++ ))
    dst_filename="$(printf MR%06d "$dst_filenumber")"
    cp "$src_filepath" "$dst_dir/$dst_filename"
  done
done