Não é possível executar uma multiplicação simples no script

0

Estou tendo problemas para realizar uma multiplicação simples no meu script.

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 desejado:

value1
value2
value3

Isto é o que eu sou minha saída atual:

13721725*100/100
400198848*180/100
217845440*120/100

Eu tentei todos os tipos de combinações

tmp=$({A} \* {C/100})
tmp=$($A\*($C/100))
tmp='$A\*$C/100' (tried to store it using back ticks)
tmp=expr $A\*$C/100

Nada parece funcionar, estou usando o KSH e o Solaris 5.10. Alguma outra maneira de fazer isso?

    
por ayrton_senna 16.06.2015 / 18:59

2 respostas

0

awk

$ awk '{print $1*$3/100}' file
13721725
7.20358e+08
261414528

Supondo que você não quer a notação "científica":

$ awk '{printf "%.1f\n", $1*$3/100}' file
13721725.0
720357926.4
261414528.0
    
por 16.06.2015 / 21:05
1

Tente isso com o ksh:

while read A B C; do
  tmp=$(($A*$C/100))
  echo $tmp
done < foo.txt > out1.txt

Saída para out1.txt:

13721725
720357926
261414528

Veja: Realizando aritmética em variáveis no shell Korn

    
por 16.06.2015 / 19:32