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

如何用Bash或Python脚本遍历文件并替换值生成请求命令?

批量生成JSON-RPC命令的Bash/Python实现

Bash 方案

通过循环读取文件每行内容,替换模板占位符即可,能完整保留数字的前导零:

#!/bin/bash
# 定义命令模板,用XYZ作为占位符
TEMPLATE='echo '\''{"id":1,"jsonrpc":"2.0", "method":"dummy.endpoint","params":[123, [XYZ]]}'\'' | nc -N localhost 30000 | json_pp'

# 逐行读取numbers.txt中的数字
while IFS= read -r num; do
    # 替换模板中的XYZ为当前数字并输出
    echo "${TEMPLATE//XYZ/$num}"
done < numbers.txt

说明:

  • IFS= read -r num确保读取时保留数字的前导零,不会被错误解析为八进制数
  • 如果需要直接执行生成的命令,将echo替换为eval即可(仅当numbers.txt内容可信时使用)

Python 方案

利用Python字符串格式化功能实现替换,同时可灵活处理空行等异常情况:

仅输出命令

# 定义命令模板,用{}作为占位符
template = '''echo '{"id":1,"jsonrpc":"2.0", "method":"dummy.endpoint","params":[123, [{}]]}' | nc -N localhost 30000 | json_pp'''

# 读取文件并逐行处理
with open('numbers.txt', 'r') as f:
    for line in f:
        num = line.strip()
        if num:  # 跳过空行
            print(template.format(num))

直接执行命令

如果需要自动执行生成的命令,可使用subprocess模块:

import subprocess

template = '''echo '{"id":1,"jsonrpc":"2.0", "method":"dummy.endpoint","params":[123, [{}]]}' | nc -N localhost 30000 | json_pp'''

with open('numbers.txt', 'r') as f:
    for line in f:
        num = line.strip()
        if num:
            subprocess.run(template.format(num), shell=True)

说明:

  • line.strip()去除每行的换行符和首尾空白,完整保留数字的前导零
  • 使用shell=True时需确保numbers.txt内容安全,避免命令注入风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:25:18