특정 열의 공통 필드가 있는 두 파일을 병합하는 방법

특정 열의 공통 필드가 있는 두 파일을 병합하는 방법

두 개의 파일이 있고 일부 특정 열이 동일한 경우 하나의 열을 제외한 모든 필드가 포함된 행을 내보내는 방식으로 파일을 병합하고 싶습니다. 이는 특정 열의 두 파일을 모두 빼는 것입니다.

예를 들어 다음과 같은 두 개의 파일이 있고 1열부터 3열까지 동일한 행을 출력하려고 하는데 4열은 파일(파일 1 - 파일 2)의 4열에 있는 두 값을 뺀 값과 같습니다.

파일 1:

10      20      30      50     
100     200     300     850    
150     250     350     900    
.....

파일 2:

100     200     300      840    
15      25      35       55     
150     250     350      880    
....

산출:

100     200     300      10    
150     250     350      20
....    

답변1

awk를 사용하세요:

$ awk '{k = $1 FS $2 FS $3} NR==FNR {a[k] = $4; next} k in a {print k, a[k]-$4}' File1 File2
100 200 300 10
150 250 350 20

관련 정보