JC、人気のコマンドラインツールの出力をJSONに変換
(github.com/kellyjonbrazil)JCJSON変換ツールの概要
jcは CLI ツール、ファイル形式、一般的な文字列の出力を JSON 形式に変換し、スクリプトでより簡単にパースできるようにする。digコマンドの例を通じて JSON 形式に変換された出力を確認でき、これをjqやjelloのようなツールで追加処理できる。- Python ライブラリとしても利用でき、この場合は JSON の代わりに Python の辞書、辞書のリスト、または辞書の遅延イテラブルを返す。
JCJSON変換ツールのインストール方法
pip、OS パッケージリポジトリ、バイナリのダウンロードでインストール可能。- さまざまな Linux ディストリビューション、macOS、FreeBSD で利用可能なインストールコマンドを提供。
JCJSON変換ツールの使い方
STDINからパイプされた入力を受け取り、前のコマンドの出力をSTDOUTに JSON 形式で出力する。- 「マジック」構文を使ってコマンドの前に
jcを付けて変換したり、/procファイルパスの前に付けて使うこともできる。 - さまざまなパーサーオプションとスライス機能により、出力フォーマットの調整や特定行の処理が可能。
JCJSON変換ツールの特徴
- 基本および生データ表現を提供し、スキーマに従って既知の数値を int/float の JSON 値に変換する。
--rawオプションまたはraw=Trueパラメータを使うことで、生の前処理済み JSON にアクセスできる。- ストリーミングパーサーにより、大量のコマンド出力をメモリ効率よく処理する。
JCJSON変換ツールの重要性
- Unix 哲学を 21 世紀に適用しようとするプロジェクトの動機やユースケースは、ブログ記事やインタビューで確認できる。
- Bash スクリプティング、Ansible、Saltstack、Nornir、FortiSOAR など、さまざまな環境でコマンド出力のパースに役立つ。
JCJSON変換ツールの互換性
- 一部のパーサーはプラットフォームに依存せず動作し、プラットフォーム固有の出力を変換するパーサーは互換性警告メッセージを生成する場合がある。
- すべてのパーサー情報は
jc -apを実行して確認できる。
JCJSON変換ツールへの貢献方法
- コードやパーサーの追加・改善への貢献を歓迎しており、
jc/parsers/foo.pyまたはjc/parsers/foo_s.pyをテンプレートとして使ってプルリクエストを送信できる。
GN⁺の意見
この記事で最も重要なのは、jc がさまざまなコマンド、ファイル形式、文字列の出力を JSON に変換し、プログラムから扱えるようにしてくれる点だ。これにより開発者はデータをより簡単に扱えるようになり、特に Unix や Linux 環境でスクリプトを書く際に有用である。この記事が興味深い理由は、jc がソフトウェア開発やシステム管理における自動化と効率を大きく向上させうるツールだからである.
1件のコメント
Hacker Newsのコメント
FreeBSDで
libxoライブラリを使ってコマンド出力を JSON 形式に変換する問題を解決lsコマンドはサポートされていたが削除された例がある--jsonフラグの標準化が必要だという指摘メンテナンスの難しさへの懸念
--<CMD>ツールの使い方がヘルプやマニュアルを複雑にする可能性があるNushell というツールの紹介
CLI ツールが JSON 出力をサポートすることへの肯定的な評価
jcツールの使い方に関する意見jc dig example.comのほうがdig example.com | jc --digより主要な使い方であるべきPowerShell であらゆる出力がオブジェクトになっていることへの好感
jcツールのメンテナンスを担っている人への敬意--jsonオプションを受け付けるモダンな Unix コマンドラインツールの一覧についての質問Unix の設計上の欠陥の指摘
textfsmを使っていないことへの意外さtextfsmは広く使われている