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

如何将Accel-PPP默认表格输出高效转换为指定格式JSON?

把Accel-PPP表格输出转成指定JSON格式的高效命令

我懂你想要快速搞定Accel-PPP输出格式转换的需求,毕竟不是资深程序员,不想折腾复杂的脚本——下面这个用awk和sed组合的命令就能直接解决,这俩工具几乎是Linux系统默认自带的,不用额外装东西,直接在终端跑就行。

命令用法

先把你用来获取Accel-PPP会话列表的命令(比如accel-cmd show sessions)放到最前面,后面接这个处理链:

accel-cmd show sessions | awk '
    BEGIN {
        FS = " *\\| *"  # 以带空格的|作为分隔符,自动忽略字段前后的空格
        first_entry = 1
    }
    NR > 2 {  # 跳过前两行:表头和分隔线
        if (!first_entry) print ","  # 除了第一个条目,前面加逗号分隔
        printf "  { \"username\":\"%s\", \"data\":{ \"ifname\":\"%s\", \"calling-sid\":\"%s\", \"rate-limit\":\"%s\" } }", $2, $1, $3, $4
        first_entry = 0
    }
    END {
        print "\n]"  # 最后加数组闭合括号
    }' | sed '1i['  # 在开头加数组开启括号

针对本地文件的用法

如果你的Accel-PPP输出已经保存成了文件(比如叫accel-sessions.txt),可以这样运行:

cat accel-sessions.txt | awk '
    BEGIN {
        FS = " *\\| *"
        first_entry = 1
    }
    NR > 2 {
        if (!first_entry) print ","
        printf "  { \"username\":\"%s\", \"data\":{ \"ifname\":\"%s\", \"calling-sid\":\"%s\", \"rate-limit\":\"%s\" } }", $2, $1, $3, $4
        first_entry = 0
    }
    END {
        print "\n]"
    }' | sed '1i['

效果演示

假设你的输入是:

ifname | username | calling-sid | rate-limit
----------+----------+-------------------+-------------
 pppoe0 | joao | EC:22:80:A2:5E:D5 | 10240/1024
 pppoe2 | pedro | C0:4A:00:88:E5:29 | 5120/1024
 pppoe4 | maria | B0:4E:26:B1:75:7D | 5120/1024

运行命令后会输出你想要的JSON结构:

[
  { "username":"joao", "data":{ "ifname":"pppoe0", "calling-sid":"EC:22:80:A2:5E:D5", "rate-limit":"10240/1024" } },
  { "username":"pedro", "data":{ "ifname":"pppoe2", "calling-sid":"C0:4A:00:88:E5:29", "rate-limit":"5120/1024" } },
  { "username":"maria", "data":{ "ifname":"pppoe4", "calling-sid":"B0:4E:26:B1:75:7D", "rate-limit":"5120/1024" } }
]

简单解释下命令逻辑

  • awk负责处理每一行数据:跳过无用的前两行,把每个会话的字段提取出来,按照你要的JSON格式输出每个对象
  • sed负责给整个输出加上JSON数组的开头[,awk的END块加上结尾],这样就凑成了完整的JSON数组格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:36:54