テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

jqで配列の番号を追加する

以下のような配列に対して、配列の番号が知りたいときがあるかと思います。

[
  "a",
  "b",
  "c"
]

jqを使うことで、配列の各要素に配列番号(index)を追加することができます。

echo '["a", "b", "c"]' | \
  jq 'to_entries | map({name: .value, index: .key})'

この例では、以下のような出力になります。

[
  {
    "name": "a",
    "index": 0
  },
  {
    "name": "b",
    "index": 1
  },
  {
    "name": "c",
    "index": 2
  }
]