检查第2列和第3列是否重复,打印第5列的第一个元素和第6列的最后一个元素

检查第2列和第3列是否重复,打印第5列的第一个元素和第6列的最后一个元素

我想做的是检查第二列和第三列是否重复(如果不重复,则按原样取第四列、第五列和第六列),打印第五列中的第一个元素和第六列中的最后一个元素及其对应的元素第四栏。

输入示例如下所示:

Chr1    39584   39678   Chr1    39653   39654
Chr1    39584   39678   Chr1    39654   39655
Chr1    39584   39678   Chr1    39677   39678
Chr1    40023   40039   Chr1    40038   40039
Chr1    283979  283993  Chr1    283979  283980
Chr1    283979  283993  Chr1    283980  283981
Chr1    283979  283993  Chr1    283989  283990
Chr1    283979  283993  Chr1    283990  283991
Chr1    283979  283993  Chr1    283992  283993

所需的输出如下所示:

Chr1    39653   39678
Chr1    40038   40039
Chr1    283979  283993

谢谢!

答案1

我钉了它:

awk '!a[$2]++ && !b[$3]++' input.txt | cut -f 4,5 >first_part.txt

tac 输入.txt | awk '!a[$2]++ && !b[$3]' |塔克 | cut -f 6 > secondary_part.txt

粘贴first_part.txt secondary_part.txt > output.txt

但如果您有更好的解决方案,请随时分享!

相关内容