我有一列我要转换成频率的计数。这将第一列相加并打印总和:
awk '{ sum+=$1 } END {print sum}'
但是,我无法弄清楚如何用总和(以单行格式)划分所述文件的每一行。能够指定小数位数的加分点。
示例输入:
0
0
0
0
1
0
5
0
输出应为:
0
0
0
0
0.166666667
0
0.833333333
0
最好还可以调整小数位数,例如:
0.00
0.00
0.00
0.00
0.16
0.00
0.83
0.00
答案 0 :(得分:2)
扫描输入两次:
awk 'NR==FNR{sum+= $1; next}{printf("%4.2f\n", $1/sum)}' input input