我有一个文本文件,其结构如下:
2 2 4 5 6
1 9 7 6 2
1 5 2 8 5
我希望能够将任何行的任何元素除以另一行的元素。例如,如果我想将第1行的第3个元素除以第3行的第2个元素,它将给出:
4/5 = 0.8
用AWK无法找到一种聪明的方法。建议?
答案 0 :(得分:0)
这可能是你想要的,但没有更多的细节和预期的输出很难说:
$ awk -v num=1,5 -v den=3,3 '{for (i=1;i<=NF;i++) cell[NR","i]=$i} END{print (cell[den] ? cell[num]/cell[den] : "NaN")}' file
3
$ awk -v num=3,4 -v den=1,2 '{for (i=1;i<=NF;i++) cell[NR","i]=$i} END{print (cell[den] ? cell[num]/cell[den] : 0)}' file
4
答案 1 :(得分:0)
如果(i1,j1)和(i2,j2)是分子和分母的坐标,你可以这样做:
i1=1
j1=3
i2=3
j2=2
awk 'NR=='$i1'{a=$'$j1'} NR=='$i2' {b=$'$j2'} END {print a"/"b " = " a/b}' file