AIX 7.1には、奇数をエコーして次の偶数を印刷するためのソリューションがあります。
$ echo "3" | bc -l | awk '{printf("%.0f\n", $1)}' | awk '{$0=int($0/4+.75)*4}1'
4
$ echo "9" | bc -l | awk '{printf("%.0f\n", $1)}' | awk '{$0=int($0/4+.75)*4}1'
12
私が直面している問題は、数が100万個を超えると、次の値を提供し始めることです。
$ echo "1000009" | bc -l | awk '{printf("%.0f\n", $1)}' | awk '{$0=int($0/4+.75)*4}1'
1.00001e+06
私が受けなければならないのは1000012です。それが私に与える次の偶数は関係ありません。偶数ならばね。これが私がテストしているHP-UX B.11.31の制限事項であるかどうかはわかりません。
そのような結果を避ける方法はありますか?
答え1
N=1000009
echo "${N:-3} 3+4/4*p" | dc
出力
1000012