2

我有一个包含两列的文件,如果匹配,我想将第二列与第二列中的每个值匹配,从第一列的两个匹配值的第一列中减去第一列

7.788244 0
7.800744 1
7.813244 2
7.825744 3
7.838244 4
7.850744 5
7.863244 6
7.875744 7
7.888244 8
7.900744 9
7.913244 10
7.925744 11
7.938244 12
7.950744 13
7.963244 14
7.975744 15
7.801751 0
7.814251 1
7.826751 2
7.839251 3
7.851751 4
7.864251 5
7.876751 6
7.889251 7
7.901751 8
7.914251 9
7.926751 10
7.939251 11
7.951751 12
7.964251 13
7.976751 14
7.989251 15

例子

0.013507
0.013507
0.013507
4

3 回答 3

3

您可以执行以下操作:

awk '{a[$2]?b[++i]=$1-a[$2]:a[$2]=$1}END{for(;x<length(b);) print b[++x]}' inputFile
于 2013-07-05T06:20:23.607 回答
2

GNU 的代码:

awk 'a[$2]?a[$2]-=$1:a[$2]+=$1 {next} END {for (i in a) print -a[i]}' file
于 2013-07-05T09:26:38.957 回答
2
awk '{if(a[$2]){print $1-a[$2]}else{a[$2]=$1;}}' your_file
于 2013-07-05T09:42:23.923 回答