使用 awk 如何合并两个文件中的数据并将第二个文件中的多个值替换为第一个文件?

Using awk how do I combine data in two files and substitute multiple values from the second file to the first file?

这个问题是

的延伸

data.txt 包含一些数据:

A;1
B;2
A;3

keys.txt 包含 "key;value1;value;value3;value4"("C" 在这个例子中不是 data.txt 的一部分,但 awk 脚本应该仍然有效):

A;30;BC;100;1000
B;20;CD;200;2000
C;10;DE;300;3000

想要的输出:

A;1;30;BC;100;1000
B;2;20;CD;200;2000
A;3;30;BC;100;1000

因此,data.txt 中包含 keys.txt 中任何键的每一行都应将相应的值附加到 data.txt 中的行。

这与问题中提到的先前答案相似。

$ awk 'BEGIN   {FS=OFS=";"} 
       NR==FNR {k=; =""; a[k]=[=10=]; next} 
        in a {print [=10=] a[]}' file2 file1

A;1;30;BC;100;1000
B;2;20;CD;200;2000
A;3;30;BC;100;1000