jc 是一个把命令行工具输出和文件类型内容转换为 JSON 的工具,目的是让这些原本面向人类阅读的文本更容易被解析、处理和分析。
用途 jc 主要用于将 CLI 命令的输出转换为结构化的 JSON 数据,方便后续用 jq 等工具处理,或在脚本、程序中进行结构化分析。它适用于解析 ps、dig、netstat、ls、ifconfig 等命令的输出,也支持多种文件类型和日志格式。
主要能力 jc 提供大量解析器,按类别包括:
- 系统:ps、top、free、df、du、ls、stat、uptime
- 网络:dig、ping、traceroute、netstat、ss、ifconfig
- 文件:ls、find、stat、file、mount、fstab
- 软件包:dpkg -l、rpm -qi、pacman、brew
- 日志:syslog、clf(Common Log Format)
- 开发:git log、docker ps、kubectl
使用方式 基本用法支持管道和“魔法语法”:
- 管道:command | jc --parser
- 魔法语法:jc command(自动检测解析器)
- 查看所有解析器:jc --help
- 查看某个解析器文档:jc --help --parser
示例:
- dig example.com | jc --dig | jq '.answer[].data'
- ps aux | jc --ps
- ifconfig | jc --ifconfig
选项 jc 提供多种命令行选项:
- -p:美化格式 JSON
- -r:原始输出(较少处理)
- -u:无缓冲输出
- -q:静默(抑制警告)
- -d:调试模式
- -y:YAML 输出
- -M:添加元数据
- -s:合并多行输入(slurp)
切片 支持 START:STOP 语法跳过行,例如: cat file.txt | jc 1:-1 --parser # 跳过首行和末行
Slurp 模式 对于多行解析器,--slurp 会输出数组,例如: cat ips.txt | jc --slurp --ip-address
Python 库 jc 也提供 Python 库,可直接在代码中解析: import jc
解析命令输出
data = jc.parse('dig', output_string)
或直接调用解析器
data = jc.parsers.dig.parse(output_string) 注意:Python 库返回 dict/list,而不是 JSON 字符串。
技巧
- 魔法语法:jc command 自动检测解析器
- 使用 jq 处理:jc cmd | jq '.field'
- 对每个文件中的多个项目使用 --slurp
- 对大量输出使用流式解析器
- Python 库返回 dict/list,不是 JSON
适用场景 适合需要把命令行输出接入脚本、管道或数据分析流程的场景,例如系统信息采集、网络诊断结果结构化、日志解析、开发工具输出处理等。
限制 资料未提供关于收费、价格、平台支持范围、性能指标或具体效果的信息,暂未提供。