我在脚本中执行简单的乘法时遇到问题。
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。还有其他方法可以做到这一点吗?
答案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
$ 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