BashでJSONを整形して出力
Linuxコマンドライン言語のBashでJSONを整形して出力する方法について紹介します。俗に言う「beautifier」としての使用方法を解説します。
JSONを整形するコマンド
BashでJSONを整形する最も簡単な方法は、Pythonの標準ライブラリを利用することです。以下のコマンドを使用します。
python -m json.tool
使用例
次に、具体的な使用例を示します。以下のコマンドを実行すると、JSONデータが整形されて出力されます。
ruby ~/pg/ruby/dev.rb | restrictstdout | python -m json.tool | ascii2uni -a U -q
上記のコマンドでは、ruby ~/pg/ruby/dev.rbが生成するJSONデータをrestrictstdoutで制限し、python -m json.toolで整形し、最後にascii2uni -a U -qでUnicodeに変換しています。
以下は出力例です。
[
{
"title": "logical jekyll"
},
{
"categories": "note",
"content": "`sudo apt update && sudo apt install nodejs npm -y`",
"date": "2019-01-17 07:41:09 +0900",
"post": "---\nlayout: post\ntitle: \"node.js npm をubuntu 18.04にインストール\"\ndate: 2019-01-17 07:41:09 +0900\ncategories: note\n---\n\n`sudo apt update && sudo apt install nodejs npm -y`\n",
"title": "node.js npm をubuntu 18.04にインストール"
}
]
このように、整形されたJSONデータが見やすく出力されます。
まとめ
BashでJSONを整形して出力する際には、Pythonのjson.toolモジュールを利用する方法が便利です。この方法を使えば、複雑なJSONデータも簡単に整形して確認することができます。