[jq] all で配列のすべての要素が条件を満たすか確認する

作成日: 2026年10月24日

jq の all を使用すると、配列のすべての要素が条件を満たすかを確認できます。

下記の例では、配列内の数値がすべて10以上かを確認しています。

printf '%s\n' '[10,20,30]' '[10,5,30]' '[]' | jq 'all(.[]; . >= 10)'

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

true
false
true

all(.[]; . >= 10) は、.[] で取り出した各要素に対して . >= 10 を評価します。すべての要素が条件を満たすと true、1つでも満たさない要素があると false を返します。

空配列には条件を満たさない要素がないため、all の結果は true になります。空配列の場合も false にしたいときは、要素数の確認を組み合わせられます。

printf '%s\n' '[10,20,30]' '[10,5,30]' '[]' | jq 'length > 0 and all(.[]; . >= 10)'

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

true
false
false

length > 0 で配列が空でないことを確認し、and で両方の条件を満たすかを判定しています。

参考

jq