Sed
無法在腳本中執行簡單的乘法
我在我的腳本中執行簡單的乘法時遇到了麻煩。
while read A B C do tmp=$A\*$C/100 echo $tmp >> out1.txt done < foo.txt
foo.txt:
13721725 99 100 400198848 170 180 217845440 113 120`
所需的 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。還有其他方法可以做到這一點嗎?
awk
$ 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
用 ksh 試試這個:
while read A B C; do tmp=$(($A*$C/100)) echo $tmp done < foo.txt > out1.txt
輸出到 out1.txt:
13721725 720357926 261414528