You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量复制Shell脚本时自动递增修改指定三位编号的实现方法

批量生成带自增编号脚本的实现方法

你需要的100份带递增三位编号的脚本,可以通过以下两种极简方案实现,不需要手动逐个修改文件:


方案一:Shell 原生实现(无依赖,直接在Linux终端运行即可)

  1. 先把你提供的初始版本脚本(编号为001的版本)保存为template.sh,放到专门的工作目录下。
  2. 在同目录下新建生成脚本gen.sh,写入以下代码:
#!/bin/bash
for i in {1..100}
do
    # 将数字格式化为3位,不足位数自动补前导零
    num=$(printf "%03d" $i)
    # 替换模板中的固定编号,输出为独立脚本文件
    sed "s|--dir \$path/outputs/001|--dir \$path/outputs/$num|g" template.sh > run_${num}.sh
    # 若需要生成的脚本自带可执行权限,保留下面这行即可
    chmod +x run_${num}.sh
done
  1. 给生成脚本加执行权限后直接运行:
chmod +x gen.sh
./gen.sh

运行完成后,目录下会直接生成run_001.sh到run_100.sh共100个脚本,每个脚本内的--dir路径编号和文件名编号一一对应。


方案二:Python 实现(逻辑直观,适合熟悉Python的场景)

  1. 同样先把初始脚本保存为template.sh放在工作目录下。
  2. 同目录新建gen.py,写入以下代码:
# 读取模板文件内容
with open("template.sh", "r", encoding="utf-8") as f:
    tpl = f.read()

# 遍历1-100生成对应脚本
for i in range(1, 101):
    num = f"{i:03d}"
    # 替换固定编号为当前自增编号
    content = tpl.replace("--dir $path/outputs/001", f"--dir $path/outputs/{num}")
    with open(f"run_{num}.sh", "w", encoding="utf-8") as f:
        f.write(content)
  1. 终端直接运行脚本即可:
python3 gen.py

生成效果和Shell方案完全一致。


注意:上述替换逻辑是精准匹配模板里的初始路径字符串--dir $path/outputs/001,如果你后续修改了模板里的初始输出路径,要同步修改生成脚本里的匹配内容,避免替换失效。

内容的提问来源于stack exchange,提问作者Pythonstudent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:42:17