両方のファイルの最初の列を比較したいです。一致するものがあれば、2 番目のファイルの対応する値が 1 番目のファイルにエクスポートされます。
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