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