리눅스 시스템 내부에서 3개 이상의 텍스트파일 비교


리눅스 상에서 tab으로 구분된 텍스트 파일을 비교하려고 합니다.
텍스트 파일 비교할때 저는 흔히 comm 을 많이 쓰는데요...
문제는 이 comm은 정확히 같은 행만 추출하는 것 같더라고요

예를 들면 두개의 tsv 파일이 있다고 가정을 합시다
test11

1    1    333    444    555
1    3    333   202    555
1    7    333    111    222

test12

1    0    123    443    121
1    1    333    444    555
1    7    333    22    555
1    10    323    22    121

이렇게 있으면 comm -12 test11 test12커멘드를 통해
1 1 333 444 555의 결과를 얻습니다.

하지만 제가 원하는 결과는 4개의 파일2번째 열만 조회해서 같은 것들만 뽑는 형태입니다.

test13

1    7    123    43    121
1    11    333    444    555
1    18    333    22    555
1    120    323    22    121

test14

1    13    333    444    555
1    10    333    22    555
1    7    323    27   121

즉, 제가 원하는 결과는 이 4개의 파일을 비교해서 아래의 결과를 얻는 것 입니다.

7    222    111    22    555    43    121    27    121

입니다.
즉 2번째 열만 맞으면 4열의 값과 5열의 값을 넣는 것이죠.
아니면 이의 변형인

7    111/222    22/555    43/121    27/121

각각의 나눗셈 결과를 하나씩 넣는 것인데...
우선은 파이선으로 구현을 했는데... 파일라인이 너무 많고 용량이 커서(각 파일당 1M~2M라인 9개 col입니다..) 그런지 interaction을 이용해도 하루반나절 걸립니다..
그래서 awk나 다른 것으로 할 수 있는지 여쭈어봅니다

  • 2016년 10월 30일에 작성됨

조회수 70


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close