2012-12-13 59 views
2

我搜索了论坛,但没有找到我的问题的答案。 我有一个看起来像这样的文件:比较连续行中不在同一列的两个字段

chr left_pos right_pos 
1 2596 3084 
1 3084 5869 
1 18500 21000 
3 21000 21536 
3 22872 23179 

我已经排序瓯上的文件列一个接着第2列: 我想在现场3在下面的对比号码设定在2场如果第一列中的字段是相同的行。如果是,则在该行的末尾添加相同的标签。如果不加不等于。

输出应该是这样的

chr left_pos right_pos 
1 2596 3084 not_equal 
1 3084 5869 equal 
1 18500 21000 not_equal 
3 21000 21536 not_equal 
3 22872 23179 not_equal 

感谢您的帮助

回答

2

这应该为你工作:

awk 'NR==1 { print; next } { print $0, ($1 == a && $2 == b) ? "equal" : "not_equal"; a = $1; b = $3 }' file | column -t 

结果:

chr left_pos right_pos 
1 2596  3084  not_equal 
1 3084  5869  equal 
1 18500  21000  not_equal 
3 21000  21536  not_equal 
3 22872  23179  not_equal 
+0

谢谢@Kevin它效果很好 – Matt