awk는 두 파일 사이의 값과 일치합니다.

awk는 두 파일 사이의 값과 일치합니다.

두 파일의 첫 번째 열을 비교하고 싶습니다. 일치하는 항목이 있으면 두 번째 파일의 해당 값이 첫 번째 파일로 내보내집니다.

File 1
username, fields

File 2
username, other_fields

Output File
username, fields, other_field if there is a match else blank

이 코드를 사용했지만 출력 파일이 비어 있습니다.

awk 'NR==FNR { a[$1]=$2; next} $1 in a {print $0, a[$1]}' File2 File1

답변1

사용 join:

join -t, -a1 <(sort -k1,1 -t, file1) <(sort -k1,1 -t, file2)

또는 csvjoin에서csvkit:

csvjoin --left -H -c a file1 file2

답변2

사용 awk:

awk 'FNR==NR{a[$1]=$2 FS $3;next}{ print $0, a[$1]}' file2 file1

답변3

awk 'NR==FNR { a[$1]=$2; next} $1 in a {print $0, a[$1]}' file1 file2 > output.csv

관련 정보