2013-07-05 36 views
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 

回答

3

你可以這樣做:

awk '{a[$2]?b[++i]=$1-a[$2]:a[$2]=$1}END{for(;x<length(b);) print b[++x]}' inputFile 
2

ç頌爲GNU

awk 'a[$2]?a[$2]-=$1:a[$2]+=$1 {next} END {for (i in a) print -a[i]}' file 
2
awk '{if(a[$2]){print $1-a[$2]}else{a[$2]=$1;}}' your_file