리눅스 시스템 내부에서 3개 이상의 텍스트파일 비교
조회수 1316회
리눅스 상에서 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나 다른 것으로 할 수 있는지 여쭈어봅니다
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력