Awk 不同文件上的列之间的乘法

Awk 不同文件上的列之间的乘法,awk,Awk,我用的是下面这行 awk '{if (FNR==90307) for(i=2;i<=10;i+=3) print " x=", x=$i," y=", y=$(i+1), "z=", z=$(i+2) }' coord.xvg veloc.xvg force.xvg 问题是,在相同的do循环(当前帧,)中,我可以执行以下乘法吗 i=2 (x(2) from force.xvg) X (y(2) from coord.xvg) i=3 (x(3) from force.xvg) X

我用的是下面这行

awk '{if (FNR==90307) for(i=2;i<=10;i+=3) print " x=", x=$i," y=", y=$(i+1), "z=", z=$(i+2) }' coord.xvg veloc.xvg force.xvg  
问题是,在相同的do循环(当前帧,)中,我可以执行以下乘法吗

i=2
(x(2) from force.xvg) X (y(2) from coord.xvg) 

i=3
(x(3) from force.xvg) X (y(3) from coord.xvg) 
i=4
…。。 ….
..

无法测试:

awk '
    FNR == 90307 {
        for (n=2; n<=10; n+=3) {
            i=(n+1)/3
            x[i,FILENAME] = $n
            y[i,FILENAME] = $(n+1)
            z[i,FILENAME] = $(n+2)
            print FILENAME, i, " x=", $n," y=", $(n+1), "z=", $(n+2) 
        }
    }
    END {
        print "the products:"
        for (i=1; i<=3; i++) {
            print i, x[i,"force.xvg"] * y[i,"coord.xvg"]
        }
    }
' coord.xvg veloc.xvg force.xvg  
awk'
FNR==90307{

对于(n=2;所有现代awk都将支持伪多维数组。只有旧的、损坏的awk(/usr/bin/awk on Solaris)不会,这是因为它是旧的、损坏的。如果我想对每一行都这样做,我应该怎么做?例如FNR==90308、90309等等
awk '
    FNR == 90307 {
        for (n=2; n<=10; n+=3) {
            i=(n+1)/3
            x[i,FILENAME] = $n
            y[i,FILENAME] = $(n+1)
            z[i,FILENAME] = $(n+2)
            print FILENAME, i, " x=", $n," y=", $(n+1), "z=", $(n+2) 
        }
    }
    END {
        print "the products:"
        for (i=1; i<=3; i++) {
            print i, x[i,"force.xvg"] * y[i,"coord.xvg"]
        }
    }
' coord.xvg veloc.xvg force.xvg