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

first_part.txt 붙여넣기 second_part.txt > output.txt

하지만 더 나은 해결책이 있다면 자유롭게 공유해 주세요!

관련 정보