在两个单独的文件夹上连续重命名文件
问题描述:
我有两个文件夹,folderA有50个文件和folderB,可以说有N个文件,我需要做的是这样的: 用一个公用计数器重命名这两个文件夹中的所有文件,一个来自folderA的文件,比如说1,3个来自folderB的文件将获得连续的计数器编号:2,3和4,然后返回到folderA并用5重命名下一个文件,直到folderA上没有文件。在两个单独的文件夹上连续重命名文件
folderA 1 5 9 13 17
FolderB中2 3 4 6 7 8 10 11 12 14 15 16 18 19 20
任何想法?
答
我认为这段代码会做到这一点。如果文件夹B中的文件数大于folderA文件数的3倍,则它基于模递增folderB数和临时停止条件。
- FolderA的图案是1,5,9 ...这就好比初始化我为1,并通过4每次迭代递增。
- FolderB中的1个,如果我模4递增的名字不是0否则被2
递增如果复制粘贴到一个文件中(假设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
这需要一点编程。你知道任何编程语言吗? –
我不是程序员,但是我在C和一些Linux脚本上编写了一些代码,但没有涉及管理不同文件夹上的文件。 – darko
这个解决方案可以用几十种语言完成,所以如果你发布这样的问题,最好给人们一个你想用的语言的概念。这个网站的想法是帮助你学习,所以它应该使用你已经熟悉的技术。 –