2022年4月14日木曜日

jq で配列の中の辞書内にある特定のカラムのみを CSV にする方法

jq で配列の中の辞書内にある特定のカラムのみを CSV にする方法

概要

CSV にするテクニックを紹介します

環境

  • macOS 11.6.5
  • jq 1.6

データ

  • vim test.json
{
  "user": {
    "codes": [
      {
        "name": "Ruby",
        "framework": "Rails"
      },
      {
        "name": "Swift",
        "framework": "SpriteKit"
      },
      {
        "name": "Python",
        "framework": "flask"
      }
    ]
  }
}

nameカラムを CSV にするコマンド

cat test.json | jq -r '[.user.codes[].name] | @csv'

ポイントは

  • 結果を [] で配列にする
  • @csv を使って配列を CSV として出力する

ちなみに更にここからダブルクオーテーションを削除したい場合はパイプで | sed 's/"//g' を追加します

0 件のコメント:

コメントを投稿