Unix シェルで JSON を読み取り可能にする
Unix シェル スクリプトで JSON データを操作することは、そのコンパクトで機械可読な形式のため、多くの場合困難になることがあります。開発者は、デバッグや理解を容易にするために、このコンパクトな JSON を人間が読みやすい形式に変換する必要が頻繁にあります。
この記事では、Unix シェル スクリプト内で JSON を整形表示するさまざまな方法を検討します。これらのテクニックに従うことで、JSON データを 1 行から、読みやすく分析しやすい、整然としたフォーマットの構造に変換できます。
指示 | 説明 |
---|---|
jq . | JSON データを整形して印刷するために使用できるコマンドライン JSON プロセッサ。 |
python3 -m json.tool | JSON データを読み取り可能な形式にフォーマットする Python モジュール。 |
node -e 'process.stdin.pipe(require("bl")((err, data) =>node -e 'process.stdin.pipe(require("bl")((err, data) => {...}))' | 標準入力から JSON データを読み取り、整形して出力する Node.js コマンド。 |
perl -MJSON -e 'print to_json(from_json(<STDIN>), { pretty =>perl -MJSON -e 'print to_json(from_json(<STDIN>), { pretty => 1 })' | JSON データを読み取り、読み取り可能な形式にフォーマットするための Perl コマンド。 |
sudo apt-get install jq | jq コマンドライン JSON プロセッサを Unix システムにインストールします。 |
sudo apt-get install python3 | JSON フォーマット用の json.tool モジュールを含む Python3 をインストールします。 |
sudo apt-get install nodejs | Node.js をインストールします。これは、JSON 処理用の JavaScript コードを実行するために使用できます。 |
sudo apt-get install perl | JSON モジュールを使用した JSON 処理に使用できる Perl をインストールします。 |
Unix シェル スクリプトにおける JSON Pretty-Printing について
上記の例で提供されているスクリプトは、JSON データをコンパクトな単一行形式からきちんとインデントされた構造に変換することで、JSON データを読みやすくするように設計されています。このプロセスは「プリティ プリント」として知られており、デバッグやデータ分析に特に役立ちます。最初のスクリプトでは、 jq、軽量で柔軟なコマンドライン JSON プロセッサ。 JSON データをパイプすることで、 jq を使用したコマンド . 引数を指定すると、スクリプトは JSON を人間が読める形式にフォーマットします。このツールは強力で使いやすいため、Unix 環境での JSON 処理によく使用されます。
もう 1 つの効果的な方法は、Python の組み込みモジュールを使用することです。 json.tool。 2 番目のスクリプトは、JSON データを python3 -m json.tool 指示。このアプローチは Python の広範なライブラリを活用し、JSON フォーマットのための堅牢なソリューションを提供します。一方、Node.js スクリプトは JavaScript の process.stdin.pipe そしてその bl (Buffer List) JSON データを読み取り、読み取り可能な形式で出力するモジュール。このスクリプトは、言語にネイティブな JSON を処理するための JavaScript の多用途性を強調しています。
Perl スクリプトは、 -MJSON JSON を解析して整形出力するモジュール。コマンドを使用して Perl 経由で JSON データをパイプする perl -MJSON -e 'print to_json(from_json(<STDIN>), { pretty => 1 })'、データを読み取り可能な構造に変換します。これらの各スクリプトには、必要なソフトウェアのインストールなどの前提条件があります。のようなコマンド sudo apt-get install jq、 sudo apt-get install python3、 sudo apt-get install nodejs、 そして sudo apt-get install perl 必要なツールがシステムで利用できることを確認してください。これらのスクリプトとコマンドを理解することで、JSON データを効率的にフォーマットして、可読性を高め、データ操作を容易にすることができます。
Unix シェル スクリプトでの JSON の整形印刷
Unix シェルでの JSON フォーマットに jq を使用する
#!/bin/bash
# This script uses jq to pretty-print JSON
json_data='{"foo":"lorem","bar":"ipsum"}'
# Pretty-print the JSON data
echo $json_data | jq .
# To run this script, ensure jq is installed:
# sudo apt-get install jq
Unix シェル スクリプトでの Python を使用した JSON のフォーマット
Python を使用した JSON の整形印刷
#!/bin/bash
# This script uses Python to pretty-print JSON
json_data='{"foo":"lorem","bar":"ipsum"}'
# Pretty-print the JSON data using Python
echo $json_data | python3 -m json.tool
# Ensure Python is installed on your system
# sudo apt-get install python3
Unix シェル スクリプトの Node.js を使用した読み取り可能な JSON 出力
JSON フォーマットに Node.js を使用する
#!/bin/bash
# This script uses Node.js to pretty-print JSON
json_data='{"foo":"lorem","bar":"ipsum"}'
# Pretty-print the JSON data using Node.js
echo $json_data | node -e 'process.stdin.pipe(require("bl")((err, data) => {
console.log(JSON.stringify(JSON.parse(data), null, 2))
}))'
# Ensure Node.js is installed on your system
# sudo apt-get install nodejs
Unix シェル スクリプトで Perl を使用して JSON を整形印刷する
Perl を使用した JSON フォーマット
#!/bin/bash
# This script uses Perl to pretty-print JSON
json_data='{"foo":"lorem","bar":"ipsum"}'
# Pretty-print the JSON data using Perl
echo $json_data | perl -MJSON -e 'print to_json(from_json(<STDIN>), { pretty => 1 })'
# Ensure Perl is installed on your system
# sudo apt-get install perl
Unix シェル スクリプトで大きな JSON ファイルを処理するためのテクニック
大きな JSON ファイルを扱う場合、データのサイズと複雑さが増大するため、きれいに印刷することがより困難になります。これに対処する効果的なアプローチの 1 つは、ファイル全体をメモリにロードするのではなく、JSON データをチャンク単位で読み取り、処理するストリーミング JSON プロセッサを使用することです。のようなツール jq そして Python などの Unix コマンドと組み合わせて使用できます。 cat そして grep 大きな JSON ファイルを効率的に管理します。たとえば、次のように使用できます jq ストリーミング モードで大きな JSON ファイルを 1 行ずつ処理し、メモリ使用量を低く抑えます。
考慮すべきもう 1 つの重要な側面は、次のようなツールによって提供されるフィルタリングおよび変換機能の使用です。 jq。活用することで jqの強力なクエリ言語を使用すると、JSON データの特定の部分を抽出し、必要に応じてフォーマットすることができます。これは、大きな JSON ファイルの特定のセクションのみを整形して印刷する必要がある場合に特に便利です。さらに、組み合わせると、 jq などの他の Unix ユーティリティを使用する awk そして sed これにより、JSON データをさらに柔軟かつ効率的に処理できるようになります。
Unix シェル スクリプトでの JSON の整形印刷に関するよくある質問
- きれいに印刷できる JSON とは何ですか?
- JSON の整形とは、人間が読みやすいように JSON データをフォーマットするプロセスです。これには通常、インデントと改行の追加が含まれます。
- きれいに印刷できる JSON が役立つのはなぜですか?
- JSON をきれいに印刷すると、JSON データの読み取りとデバッグが容易になり、開発者がデータの構造と内容をより迅速に理解できるようになります。
- とは jq?
- jq は、JSON データの解析、フィルタリング、およびフォーマットを可能にする軽量で柔軟なコマンドライン JSON プロセッサです。
- どのようにインストールしますか jq?
- インストールできます jq コマンドを使用して sudo apt-get install jq Unix ベースのシステム上で。
- は何ですか python3 -m json.tool コマンドを実行しますか?
- の python3 -m json.tool このコマンドは、Python の組み込み JSON モジュールを使用して、JSON データを読み取り可能な形式にフォーマットします。
- Node.js を使用して JSON をきれいに印刷できますか?
- はい、Node.js を使用して、次のようなコマンドを使用して JSON を整形表示できます。 node -e 'process.stdin.pipe(require("bl")((err, data) => { console.log(JSON.stringify(JSON.parse(data), null, 2)) }))'。
- の目的は何ですか perl -MJSON -e 指示?
- の perl -MJSON -e コマンドは Perl の JSON モジュールを使用して JSON データを解析し、フォーマットします。
- 大きな JSON ファイルをどのように処理できますか?
- 大きな JSON ファイルを処理するには、ストリーミング JSON プロセッサと次のようなツールを使用できます。 jq Unix コマンドと組み合わせて、データをチャンク単位で処理します。
JSON フォーマットに関する最終的な考え
Unix シェル スクリプト内で JSON を読み取り可能な形式に変換することは、開発者にとって貴重なスキルです。のようなツールを活用することで、 jq、 Python、 Node.js、 そして Perlを使用すると、JSON データを効率的に処理してデバッグできます。各ツールにはそれぞれ長所があり、特定のニーズに最適なものを選択できます。適切にフォーマットされた JSON により、データの理解が向上し、トラブルシューティングが合理化され、最終的には開発ワークフローが強化されます。