Calcular dentro de uma coluna usando awk

0

Isso é o que eu consegui até agora:

var="1.5"

echo "date,1%sa,comment" |
 awk -F ',' '{print $2}' |
 awk -v i="$var" -F '%' '{$1*=i; print $1}'

# prints: 1.5

Eu preciso obter o valor para calcular com uma variável fora de awk , usando -v . No código eu uso dois comandos awk para separar o número do %sa . Como posso combinar esses dois comandos e reimprimir toda a linha da seguinte forma:

date,1.5,comment
    
por nath 30.07.2018 / 22:21

1 resposta

1
var="1.5"

echo "date,1%sa,comment" |
awk -F ',' -v OFS=',' -v i="$var" '{ split($2, a, "%"); $2 = a[1]*i; print }'

Isso usa vírgulas para separadores de entrada e saída e, em seguida, divide o segundo campo em % , define o número na frente do % vezes o valor da variável passada para o programa e imprime o registro modificado .

    
por 30.07.2018 / 22:29