gpt4 book ai didi

linux - 在两个单独的文件夹上连续重命名文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:34:50 25 4
gpt4 key购买 nike

我有两个文件夹,folderA 有 50 个文件,folderB 有 N 个文件,我需要做的是:使用公共(public)计数器重命名两个文件夹中的所有文件,每次我重命名文件夹 A 中的文件时,假设 1、文件夹 B 中的 3 个文件将获得连续的计数器编号:2、3 和 4,然后返回文件夹 A 并重命名下一个5 个文件,直到文件夹 A 上没有文件为止。

文件夹A 1 5 9 13 17

文件夹 B 2 3 4 6 7 8 10 11 12 14 15 16 18 19 20

有什么想法吗?

最佳答案

我认为这段代码可以解决问题。如果 folderB 中的文件数超过 folderA 文件数的 3 倍,它基于模数递增 folderB 编号和临时停止条件。

  • FolderA 的模式是 1, 5, 9... 这就像将 i 初始化为 1,并且每次迭代递增 4。
  • 如果 i 模 4 不为 0,则文件夹 B 的名称递增 1,否则它递增 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

关于linux - 在两个单独的文件夹上连续重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com