我搜索了论坛,但没有找到我的问题的答案。 我有一个如下所示的文件:
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
感谢您的帮助
最佳答案
这应该适合你:
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
关于awk - 比较连续行中不在同一列的两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13851614/