[jq] JSON を CSV に変換する
作成日: 2022年02月20日
@csv
という書式を利用することで入力された値を CSV 形式で出力することができます。
まず、下記の内容をの dummy.json
というファイルを作成します。
[
{
"name": "Tom",
"age": 11
},
{
"name": "Bob",
"age": 22
}
]
下記のようなコマンドを実行します。
cat dummy.json | jq -r '.[] | [.name, .age] | @csv'
実行結果は下記のとおりです。
"Tom",11
"Bob",22
説明
jq
コマンドの-r
オプションは出力結果をプレーンな文字列として出力します。@csv
の書式で変換するときにダブルクォーテーションのエスケープが含まれないようにしています。[.name, .age]
では、JSON 形式のデータ構造を name プロパティ、age プロパティだけの配列に変換しています。CSV 形式のデータには各行にキーが存在しないため、ここで省略を行っています。- 最後に
@csv
書式に渡すことで CSV 形式に変換されます。