用awk逐列相乘

时间:2018-04-18 19:47:21

标签: awk

下午好, 我试图用awk进行以下乘法运算:

0    1       2       3
2 A21*A12 A21*A13 A21*A14
5 A31*A12 A31*A13 A31*A14
4 A41*A12 A41*A13 A41*A14

输入:

0 1 2 3
2
1
3

预期产出:

0 1 2 3
2 2 4 6
1 1 2 3
3 3 6 9

是否可以使用awk执行此操作?

1 个答案:

答案 0 :(得分:3)

awk '
    NR == 1 {n = split($0, a)}
    NR > 1  {for (i=2; i<=n; i++) $i = a[i] * $1}
    {print}
' input
0 1 2 3
2 2 4 6
1 1 2 3
3 3 6 9