这是一个变体使用 awk 如何将两个文件中的数据合并到两个文件并将第二个文件中的值替换为第一个文件?
这个问题与上面链接的问题不同,原因是这个问题处理了几个额外的情况。
data.txt 包含一些数据:
A;1
B;2
C;3
A;4
键.txt包含"键,值"对,但是,缺少 C 的键,值对:
A;60
B;50
D;30
期望的输出
A;1;60
B;2;50
C;3;1
A;4;60
对于缺少的所有"键,值"对,请将默认值 1 附加到这些行。还应该能够处理键中的"键,值"对.txt这些键在数据中没有相应的键.txt(例如本例中的 D;30(。
awk
救援!
与相关答案相比在筛选器中删除,并将最后一个字段替换为条件字段。
$ awk 'BEGIN {FS=OFS=";"}
NR==FNR {a[$1]=$2; next}
{print $0,($1 in a)?a[$1]:1}' file2 file1
A;1;60
B;2;50
C;3;1
A;4;60