operação aritmética com colunas no arquivo de texto

0

Eu tenho um arquivo de dados que consiste em duas colunas. Preciso realizar operações aritméticas com estas colunas da seguinte forma:

column_1=a(i)
column_2=b(i)

em que i é o número da linha

result_1=a(1)*100/b(1)
result_2=a(2)*100/b(2) ....

então eu preciso escrever todos os resultados em outro arquivo de texto composto por colunas. Eu tentei códigos abaixo, mas todos os valores parecem Inf.

nawk -F, '{print $1*100/$2}' data > results
    
por deepblue_86 19.12.2015 / 10:37

1 resposta

2

Você está dizendo -F, , mas (de acordo com seu comentário) seus dados são separados por espaços, não vírgulas. Então é isso que [n]awk

Line 1:   $1="100 150"   $2=""
Line 2:   $1="200 250"   $2=""

Depois de usá-los em uma expressão aritmética, awk os converte para

Line 1:   $1=100        $2=0
Line 2:   $1=200        $2=0

e assim você começa a divisão por 0. Basta deixar o -F, (ou altere seus dados para serem separados por vírgulas) e você deve obter a saída desejada. Bem, quase; no meu sistema, recebo 66.6667 e 80 . Você só precisa arredondar o resultado para o número inteiro mais próximo (se isso é, na verdade, o que você quer).

    
por 19.12.2015 / 12:18