2 ポイント 投稿者 GN⁺ 2023-12-10 | 1件のコメント | WhatsAppで共有

JCJSON変換ツールの概要

  • jc は CLI ツール、ファイル形式、一般的な文字列の出力を JSON 形式に変換し、スクリプトでより簡単にパースできるようにする。
  • dig コマンドの例を通じて JSON 形式に変換された出力を確認でき、これを jqjello のようなツールで追加処理できる。
  • 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件のコメント

 
GN⁺ 2023-12-10
Hacker Newsのコメント
  • FreeBSDで libxo ライブラリを使ってコマンド出力を JSON 形式に変換する問題を解決

    • ls コマンドはサポートされていたが削除された例がある
    • すべてのユーティリティでサポートされているわけではない
    • PowerShell はデフォルトで構造化された出力を提供する
    • Unix/Linux でも --json フラグの標準化が必要だという指摘
  • メンテナンスの難しさへの懸念

    • バージョン管理やコマンドフラグの変更などで保守が難しくなりそう
    • --<CMD> ツールの使い方がヘルプやマニュアルを複雑にする可能性がある
  • Nushell というツールの紹介

    • シェル自体が構造化データを提供するアプローチ
  • CLI ツールが JSON 出力をサポートすることへの肯定的な評価

    • 実際には JSON 形式でも複雑すぎたり不要だったりすることが多く、実用性には疑問もある
  • jc ツールの使い方に関する意見

    • jc dig example.com のほうが dig example.com | jc --dig より主要な使い方であるべき
  • PowerShell であらゆる出力がオブジェクトになっていることへの好感

    • Bash スクリプトを書くときにその機能が恋しくなる
  • jc ツールのメンテナンスを担っている人への敬意

  • --json オプションを受け付けるモダンな Unix コマンドラインツールの一覧についての質問

    • その情報をリポジトリに追加すると有用かもしれない
  • Unix の設計上の欠陥の指摘

    • コマンドプログラムは呼び出し元プログラムに整数の終了コードしか返せない
    • GUI プログラムがコマンドプログラムを呼び出す際に得られる情報が限定的
  • textfsm を使っていないことへの意外さ

    • ネットワーク機器の CLI 出力を解析するのに textfsm は広く使われている