找到列之间的比率

时间:2015-11-05 13:33:50

标签: awk

我有一些以下格式的输入文件:

File1.txt     File2.txt      File3.txt
1  2          1 6            1  20
2  3          2 9            2  21
3  7          3 14           3  28

现在我需要使用带有三列的AWK输出一个新的单个文件,第一列保持不变,三个文件中的相同(只是一个序数)。

然而,对于这个新创建的文件的第2和第3列,我需要第二个文件的第2列的值除以第1个文件的第2列的值,也需要第2个列的值。第三个文件除以第一个文件的第二列的值。换句话说,第二和第三文件的第二列除以第一个文件的第二列。 e.g:

Result.txt
1  3  10
2  3  7
3  2  4 

1 个答案:

答案 0 :(得分:0)

使用多维矩阵存储值:

awk 'FNR==NR {a[$1]=$2; next}
    {b[$1,ARGIND]=$2/a[$1]}
    END {for (i in a) 
           print i,b[i,2],b[i,3]
        }' f1 f2 f3

测试

$ awk 'FNR==NR {a[$1]=$2; next} {b[$1,ARGIND]=$2/a[$1]} END {for (i in a) print i,b[i,2],b[i,3]}' f1 f2 f3
1 3 10
2 3 7
3 2 4