例示が正確には二乗になっていないようですが、二乗でよいのであれば、素直に 数学関数の pow()
を用いる のが一番分かりやすいのではないでしょうか。
bash
1[argparse@localhost ~]$ echo '[1,2,3,4]' | jq -c 'map(pow(.; 2))'
2[1,4,9,16]
他にも、いくつか書き方は考えられますのが、この辺りは好みの問題かと存じます。
bash
1[argparse@localhost ~]$ echo '[1,2,3,4]' | jq -c '[pow(.[]; 2)]'
2[1,4,9,16]
3[argparse@localhost ~]$ echo '[1,2,3,4]' | jq -c 'map(.*.)'
4[1,4,9,16]
5[argparse@localhost ~]$ echo '[1,2,3,4]' | jq -c '[.[]|.*.]'
6[1,4,9,16]
また、具体的に何が分からないためにどう悩まれているのかが分かりかねるのですが、もしも「どう演算すべきか」ではなく 「配列をどう操作すべきか」 が疑問点なのでしたら、ドキュメントの Array/Object Value Iterator (.[]
) や map()
function についての項目を御確認下さい。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/21 10:15