두 파일을 비교하고 모든 열을 인쇄한 다음 누락된 항목을 NA로 표시하고 다른 파일에 결합해야 합니다. [중복]

두 파일을 비교하고 모든 열을 인쇄한 다음 누락된 항목을 NA로 표시하고 다른 파일에 결합해야 합니다. [중복]

파일 1:

123, 234
345, 789
678, 900

파일 2

123, abc
345, dnc

출력(파일 1의 모든 열과 파일 2의 누락된 값은 NA임):

123,234,abc
345,789,dnc
678,900,NA


다른 파일이 추가된 출력 파일

파일 3

123, 2014/10/20
678, 2013/02/30

결과물 파일

123,234,abc,2014/10/20
345,789,dnc,NA
678,900,NA,2013/02/30

이와 같은 파일이 10개 있는데 첫 번째 파일에 추가해야 합니다.

답변1

입력 파일이 많고 프로세스를 반복해야 하는 경우 이 작업을 단순화하는 한 가지 방법은 함수를 정의하는 것입니다.

myjoin () {
join -t, -a 1 -a 2 -j 1 -e ' NA' -o auto $1 $2 ; }

그런 다음 프로세스 대체를 사용하여 <()호출하십시오.

myjoin <(myjoin file1 file2) file3

결과:

123, 234, abc, 2014/10/20
345, 789, dnc, NA
678, 900, NA, 2013/02/30

저는 여기를 이용했어요cuonglm 답변이전 조인 질문을 바탕으로 이 접근 방식을 다른 "단일" 솔루션과 함께 사용할 수 있습니다.

관련 정보