我有两个文件夹,folderA包含50个文件,folderB包含N个文件,我需要做的是: 使用公共计数器重命名两个文件夹中的所有文件,每次我从folderA重命名文件时,可以说来自folderB的1,3个文件将获得连续的计数器编号:2,3和4,然后返回到文件夹A并重命名为下一个文件为5,直到文件夹A上没有文件。
folderA 1 5 9 13 17
folderB 2 3 4 6 7 8 10 11 12 14 15 16 18 19 20
有什么想法吗?
答案 0 :(得分:0)
我认为这段代码可以解决问题。如果folderB中的文件数超过folderA文件数的3倍,则它基于模数来增加folderB数和临时停止条件。
如果将其复制粘贴到文件中(假设是 renaming.sh )并假设具有正确的执行权限($> chmod + x renaming.sh),则可以像命令一样使用它行:
$> ./renaming.sh folderA folderB
以下是放入文件的代码:
#!/bin/bash
i=1
ACOUNT=0
for FILEA in $1/*; do
mv "${FILEA}" "$1/${i}"
(( i+=4 ))
((ACOUNT++))
done
i=1
BCOUNT=0
for FILEB in $2/*; do
if (( i%4 )) ; then
((i++))
else
((i+=2))
fi
if ((BCOUNT>= 3* ACOUNT)); then break; fi
((BCOUNT++))
mv "${FILEB}" "$2/${i}"
done