スクリプトで単純な乗算を実行する際に問題があります。
while read A B C
do
tmp=$A\*$C/100
echo $tmp >> out1.txt
done < foo.txt
foo.txt:
13721725 99100 400198848170180 217845440 113120 `
必須 out1.txt:
値1 値2 値3
これは私の現在の出力です。
13721725*100/100 400198848*180/100 217845440*120/100
さまざまな組み合わせを試しました。
tmp=$({A} \* {C/100})
tmp=$($A\*($C/100))
tmp=`$A\*$C/100` (tried to store it using back ticks)
tmp=expr $A\*$C/100
何も動作しないようです。私はKSHとSolaris 5.10を使用しています。別の方法がありますか?
答え1
kshでこれを試してください:
while read A B C; do
tmp=$(($A*$C/100))
echo $tmp
done < foo.txt > out1.txt
out1.txtに出力:
13721725 720357926 261414528
答え2
アッ
$ awk '{print $1*$3/100}' file
13721725
7.20358e+08
261414528
「科学的」表記法を望まないと仮定すると、次のようになります。
$ awk '{printf "%.1f\n", $1*$3/100}' file
13721725.0
720357926.4
261414528.0