我有一个n种(s1到sn)的数组,它们作为列存储在file1中。另一方面,我有一个n列的文件2,长度为m。我需要将file1中每个值的值相乘以将file2的每一列相乘,然后对每一行求和并添加到file2的最后一列中。举个例子:
文件1:
s1 1
s2 2
s3 3
s4 4
和file2:
s1 s2 s3 s4
10 20 30 40
11 21 31 41
12 22 32 42
13 23 33 43
,结果应为:
s1 s2 s3 s4 sum
10 20 30 40 10*1+20*2+30*3+40*4
11 21 31 41 11*1+21*2+31*3+41*4
12 22 32 42 12*1+22*2+32*3+42*4
13 23 33 43 13*1+23*2+33*3+43*4
我怎么能用awk做到这一点?
答案 0 :(得分:0)
听起来你需要这样的东西:
awk 'NR==FNR{a[NR]=$2; next} FNR>1{sum=0; for (i=1;i<=NF;i++) sum += a[i] * $i; print sum}' file1 file2
但没有一些实际的样本输入和预期输出,很难说。