私がしたいのは、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
しかし、より良い解決策がある場合は、自由に共有してください!