스크립트에서 간단한 곱셈을 수행하는 데 문제가 있습니다.
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 '{print $1*$3/100}' file
13721725
7.20358e+08
261414528
"과학적" 표기법을 원하지 않는다고 가정하면 다음과 같습니다.
$ awk '{printf "%.1f\n", $1*$3/100}' file
13721725.0
720357926.4
261414528.0