[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 で両方の条件を満たすかを判定しています。