2

我搜索了论坛,但没有找到我的问题的答案。我有一个看起来像这样的文件:

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

我已经对第一列和第二列的文件进行了排序:如果第一列中的字段相同,我想将字段 3 中的数字与下一行中字段 2 中的数字进行比较。如果是,则在行尾添加标签 equal 。如果不加不等于。

输出应如下所示

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

谢谢你的帮助

4

1 回答 1

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
于 2012-12-13T01:52:39.547 回答