在连续行中比较不在同一列中的两个字段



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

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

感谢您的帮助

这应该适合您:

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

相关内容

  • 没有找到相关文章

最新更新