这个问题与上面提到的问题不同的原因是这个问题处理了一些其他案例。
data.txt包含一些数据:
A;1
B;2
C;3
A;4
keys.txt包含“key,value”对,但是,C的键值对缺失:
A;60
B;50
D;30
期望的输出
A;1;60
B;2;50
C;3;1
A;4;60
对于缺少的所有“键,值”对,将默认值1附加到这些行。还应该能够处理keys.txt中的“key,value”对,它们在data.txt中没有相应的键(例如D;本例中为30)。
答案 0 :(得分:3)
awk
救援!
与相关的answer相比 在过滤器中删除并使用条件替换最后一个字段。
$ 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