jc 是一個命令列工具和 Python 函式庫,用於將常見 CLI 命令輸出、檔案類型和字串轉換成 JSON、YAML 或 Python 字典格式。完整介紹參閱作者 @kellyjonbrazil 的 repo

用法

將命令輸出通過管道傳送給 jc

command | jc --parser-name`

或者

jc command

例如

netstat -apee | jc --netstat

注意事項

  1. 建議將語系環境變數設定為 C 或 en_US.UTF-8。
  2. 除非時間戳欄位名稱有 _utc 後綴,否則視為本地時區。
  3. 部分解析器可能只支援特定平台。
  4. 可以直接處理串流解析器(如 ls-s 和 ping-s

哲學觀

傳統的 Unix/Linux 工具輸出的是人眼好讀,但機器不方便自動化的結果。如果要自動化,有必要統一並結構化其結果。有一部分新的工具有提供 JSON 輸出選項,但不常見。

ifconfig ens33 | jc --ifconfig | jq -r '.[].ipv4_addr'

取得特定網口的 IP。先使用 jc 取得結構化資料,再用 jq 取得特定欄位資料。