숫자 필드를 기반으로 2개의 텍스트 파일 병합/결합

숫자 필드를 기반으로 2개의 텍스트 파일 병합/결합

텍스트 파일이 2개 있습니다

파일 1:

14595|Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5
14649|Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5

파일_2:

14595|Address xx|Info 6|Info 7|Info 8
14649|Address xxxz|Info 6|Info 7|Info 8

file_1의 첫 번째 열(숫자 열)을 찾고 file_2에서 일치하는 항목을 찾고 숫자 키 필드 없이 두 파일의 정보를 file_3에 병합하는 방법을 원하므로 출력은 다음과 같습니다.

파일_3

Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5|Address xx|Info 6|Info 7|Info 8
Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5|Address xxxz|Info 6|Info 7|Info 8

답변1

사용 join:

$ join -t'|' file_1 file_2
14595|Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5|Address xx|Info 6|Info 7|Info 8
14649|Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5|Address xxxz|Info 6|Info 7|Info 8

-t필드 구분 기호를 나타냅니다.

저작물에 포함되기 위해서는 파일을 분류해야 합니다. 당신은 그것을 사용할 수 있습니다 sort.

답변2

그리고 awk:

$ awk 'BEGIN{FS=OFS="|"}NR==FNR{a[$1]=$0;next}{$1=a[$1]}1' file_1 file_2
14595|Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5|Address xx|Info 6|Info 7|Info 8
14649|Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5|Address xxxz|Info 6|Info 7|Info 8

관련 정보