使用awk,根据键有条件地打印默认值,该值不存在于第二个文件中

使用awk,根据键有条件地打印默认值,该值不存在于第二个文件中,awk,printing,conditional,default,key-value,Awk,Printing,Conditional,Default,Key Value,这是上的一个变体 这个问题与上面链接的问题不同的原因是这个问题处理了几个额外的案例 data.txt包含一些数据: A;1 B;2 C;3 A;4 keys.txt包含“key,value”对,但是缺少C的key,value对: 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)

这是上的一个变体

这个问题与上面链接的问题不同的原因是这个问题处理了几个额外的案例

data.txt包含一些数据:

A;1
B;2
C;3
A;4
keys.txt包含“key,value”对,但是缺少C的key,value对:

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)。

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
可能重复的