두 개의 파일을 한 번에 한 열씩 병합

두 개의 파일을 한 번에 한 열씩 병합

다음 형식의 큰 파일(3000개 열, 15000개 행)이 2개 있습니다.

file1(탭으로 구분):

1/0 0/0 0/0
0/0 1/1 0/0
1/1 0/1 0/0

file2(탭으로 구분):

3 5 2
1 7 10
3 4 3

각 파일의 첫 번째 열의 값을 ":" 구분 기호로 결합한 다음 두 번째 열, 세 번째 열 등으로 이동하고 싶습니다. 원하는 출력(탭으로 구분):

1/0:3 0/0:5 0/0:2
0/0:1 1/1:7 0/0:10
1/1:3 0/1:4 0/0:3

효율성은 중요하지 않으므로 어떤 언어든 가능합니다. 이 질문이 이전에 요청되었다면 사과드립니다.

답변1

이 같은? 샘플 데이터 사용:

paste  file{1,2} | awk '{for (i=1;i<=NF/2; i++){printf "%s:%s\t",$i,$(NF/2+i)};printf "\n"}'
1/0:3   0/0:5   0/0:2
0/0:1   1/1:7   0/0:10
1/1:3   0/1:4   0/0:3

답변2

awk '{
    getline f2 < "file2"
    split(f2, a)
    for (i=1; i<=NF; i++) 
        printf "%s:%s\t", $i, a[i]
    print ""
}' file1

답변3

약간 다른 접근 방식:

paste -d: <(xargs -n1 <file1) <(xargs -n1 <file2) | xargs -n 3

관련 정보