2列と3列が重複していることを確認し、5列の最初の要素と6列の最後の要素を印刷します。

2列と3列が重複していることを確認し、5列の最初の要素と6列の最後の要素を印刷します。

私がしたいのは、2番目と3番目の列が重複していることを確認することです(そうでなければ、4番目、5番目、6番目の列をそのまま使用します)。 5列目の最初の要素と6列目の最後の要素を印刷し、4列目の対応する要素です。

入力例は次のとおりです。

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 input.txt | awk '!a[$2]++ && !b[$3]' |tac|

first_part.txt 貼り付け second_part.txt > output.txt

しかし、より良い解決策がある場合は、自由に共有してください!

おすすめ記事