CLI 输出 JSON 转换器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/normalize-cli-output-into-json-for-reliable-agent-automation
技能介绍
要解决的具体问题
在自动化流水线里,用 grep、awk 或正则表达式去解析命令行输出是一件很脆弱的事。ping、dig、ls 这类工具的设计对象是给人看的:字段顺序会变,告警行混在正文里,不同系统版本的措辞也不同。一次写死的正则在环境变化后会静默失效,而故障往往发生在下游,而不是解析当场。
核心能力与工作方式
这个技能把 jc 放进流水线,让"结构化"这一步标准化:
- 管道转换:在命令末尾直接接
jc,例如dig example.com | jc --dig,stdout 就变成 JSON 对象与数组。 - 文件输入:
jc也支持一批常见文件格式,可以对文件做同样的结构化。 - 库内调用:
jc可以作为 Python 库使用,返回的是 Pythondict、list[dict]这类原生对象,不必经过 JSON 序列化往返,适合在 Python 脚本里直接处理。
拿到 JSON 之后,下游用 jq 过滤、做 diff、按规则校验、写库都更稳定,不用再维护一层正则适配代码。
适用边界与注意点
- 能转换哪些命令与格式,取决于上游
jc已实现的解析器;遇到不支持的命令仍会失败。 - 它本质上依赖
jc这个 Python 包,运行前需要先装好它和相关解析器依赖。 - 适合"命令已确定、只缺机器可读输出"的场景;交互式命令、依赖终端宽度或 TTY 行为的输出,不适合这样管道化处理。
使用场景
- 运维在执行 dig 等命令排查故障时,需要把命令行输出转成结构化 JSON,用于后续自动化分析。
- 测试工程师在验收命令行工具时,需要把工具生成的配置文件和文本日志解析成 JSON 以便断言校验。
- 开发工程师在编写 Python 脚本时,需要调用 jc 库直接拿到命令输出的字典结构进行二次处理。
- 后端开发者在收集多台服务器的日志文件时,需要将其批量转换为统一的 JSON 格式供下游消费。
适合人员
- 负责基础设施巡检的 SRE 工程师,需要将各种命令行输出标准化为 JSON 以便自动化处理。
- 负责开发和测试系统工具的工程师,需要将文本格式的配置文件和日志转换为结构化数据用于断言和数据生成。
- 编写 Python 自动化脚本的后端开发者,希望利用 jc 库直接获取原生字典和列表对象,避免手动解析。
- 处理大量服务器日志和系统状态输出的开发者,需要一个稳定可靠的方案将非结构化文本转换为标准 JSON。