我有一个包含多个列的表,我希望将表中的所有行与第一行的值(逐列)相乘。
表:
0,140 0,130 0,140 0,150 0,160 <- values to be used for multiplication
1,270 1,190 6,080 3,760 2,810
1,290 1,140 6,110 3,900 3,050
1,370 1,160 6,310 4,030 3,020
1,370 1,150 6,500 3,970 3,070
结果:
0,178 0,155 0,851 0,564 0,450
0,181 0,148 0,855 0,585 0,488
0,192 0,151 0,883 0,605 0,483
0,192 0,150 0,910 0,596 0,491
我对awk
有一些经验,但我无法找到解决方案。
答案 0 :(得分:1)
$ awk 'NR==1{split($0,m);CONVFMT="%.3f";next} {for (i=1;i<=NF;i++) $i=$i*m[i]} 1' file
0.178 0.155 0.851 0.564 0.450
0.181 0.148 0.855 0.585 0.488
0.192 0.151 0.883 0.605 0.483
0.192 0.149 0.910 0.596 0.491
我在示例中使用了.
而不是,
s作为我的语言环境用于小数点的内容。