[jq] index と rindex で配列内の値の位置を取得する

作成日: 2026年10月25日

jq の index を使用すると、配列内で指定した値が最初に現れる位置を取得できます。位置は先頭を 0 として数えます。

下記の例では、それぞれの配列から数値の 20 が最初に現れる位置を取得しています。

printf '%s\n' '[10,20,30,20]' '[20,10]' '[10,30]' | jq 'index(20)'

実行結果は下記のとおりです。

1
0
null

同じ値が複数ある場合、index は最初の位置を返します。指定した値が見つからない場合は null を返します。

最後に現れる位置を取得する

rindex を使用すると、指定した値が最後に現れる位置を取得できます。

printf '%s\n' '[10,20,30,20]' | jq 'rindex(20)'

実行結果は下記のとおりです。

3

この配列では 20 が位置 1 と 3 にあるため、index(20) は 1、rindex(20) は 3 を返します。rindex も、指定した値が見つからない場合は null を返します。

参考

jq