奇妙な10進数の分割

奇妙な10進数の分割

値を含むファイルがあり、一部は整数、一部は小数です。

# cat file    
value1 100
value2 500.10
value3 2505
value4 35.4

field2の各値を固定数値= 1000で除して除算した後、すべての値を追加したいと思います。結果の値には小数点以下5桁が必要です。

# cat output.txt
value1 100 0.10000
value2 500.10 0.50010
value3 2505 2.50500
value4 35.4 0.03450
sum   3140.50000 3.14050   

ベストアンサー1

合計値がオフになっていると思いますが、次のように使用できます。

{
        div = $2 / 1000
        sum += $2
        divsum += div
        printf "%s %.5f\n", $0, div
}

END {
        printf "sum %.5f %.5f\n", sum, divsum
}

$ awk '{div=$2/1000;sum+=$2; divsum+=div; printf "%s %.5f\n", $0, div}END{printf "sum %.5f %.5f\n", sum, divsum}' file
value1 100 0.10000
value2 500.10 0.50010
value3 2505 2.50500
value4 35.4 0.03540
sum 3140.50000 3.14050

おすすめ記事