awk 명령을 사용하여 두 파일을 비교하고 모든 열을 인쇄하면 누락된 항목이 NA로 표시됩니다.

awk 명령을 사용하여 두 파일을 비교하고 모든 열을 인쇄하면 누락된 항목이 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

답변1

이용하면 더 쉬울 것 같아요가입하다:

$ join -t, -a 1 -a 2 -j 1 -e ' NA' -o auto file1 file2
123, 234, abc
345, 789, dnc
678, 900, NA

답변2

awk -F ", ?" -v OFS=, 'FNR == NR { a[$1]=$2;next; };
  { if ($1 in a) print $1,$2,a[$1]; else print $1,$2,"NA"; }' file2 file1

답변3

awk 'BEGIN{OFS=""}NR==FNR{a[$1]=$2;};NR>FNR{if($1 in a){print $0,", ",a[$1];}else{print $0,", NA";}}' file2 file1 > tmp

file3에서 업데이트하도록 요청하면 출력이 tmp에 저장됩니다.

awk 'BEGIN{OFS=""}NR==FNR{a[$1]=$2;};NR>FNR{if($1 in a){print $0,", ",a[$1];}else{print $0,", NA";}}' file3 tmp

산출:

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

관련 정보