【发布时间】:2021-12-05 20:39:51
【问题描述】:
我有 20 个文件,例如:
01a_AAA_qwe.sh
01b_AAA_asd.sh
01c_AAA_zxc.sh
01d_AAA_rty.sh
...
文件的名称格式相似。它们以 01 开头,格式为 01*AAA*.sh。
我希望复制和重命名同一目录下的文件,将数字01更改为02、03、04和05:
02a_AAA_qwe.sh
02b_AAA_asd.sh
02c_AAA_zxc.sh
02d_AAA_rty.sh
...
03a_AAA_qwe.sh
03b_AAA_asd.sh
03c_AAA_zxc.sh
03d_AAA_rty.sh
...
04a_AAA_qwe.sh
04b_AAA_asd.sh
04c_AAA_zxc.sh
04d_AAA_rty.sh
...
05a_AAA_qwe.sh
05b_AAA_asd.sh
05c_AAA_zxc.sh
05d_AAA_rty.sh
...
我希望将 01*.sh 文件中的 20 个复制到 02*.sh、03*.sh 和 04*.sh。这将使文件夹中的文件总数为 100。
我真的不知道如何才能做到这一点。我试图在 bash 脚本中使用 for 循环。但甚至不确定我应该选择什么作为 for 循环索引。
for i in {1..4}; do
cp 0${i}*.sh 0${i+1}*.sh
done
不工作。
【问题讨论】:
-
$(i+1}应该是$((i+1))。${}用于变量,$(())用于数学表达式。
标签: linux bash copy rename batch-processing