gpt4 book ai didi

unix - 使用 AWK/SED 根据唯一 ID 连接两个变量

转载 作者:行者123 更新时间:2023-12-02 14:11:20 25 4
gpt4 key购买 nike

我有两个变量,它们是逗号分隔的列表。我想通过根据其唯一 ID 附加行来连接这两个变量。

示例如下:

var1="
id1,data1,data2,data3
id2,data1,data2,data3
id3,data1,data2,data3
id4,data1,data2,data3
"

var 2="
id1,data4,data5,data6
id2,data4,data5,data6
id3,data4,data5,data6
id4,data4,data5,data6
"

output="
id1,data1,data2,data3,data4,data5,data6
id2,data1,data2,data3,data4,data5,data6
id3,data1,data2,data3,data4,data5,data6
id4,data1,data2,data3,data4,data5,data6
"

我在 AWK 方面并不是最好的,虽然我可以解密它,但在输入命令时仍然遇到困难。如果您能提供帮助,那就太好了!

最佳答案

如果您未设置 sedawk,您可以使用 join:

$ cat in1
id1,data1,data2,data3
id2,data1,data2,data3
id3,data1,data2,data3
id4,data1,data2,data3
x
$ cat in2
id1,data4,data5,data6
id2,data4,data5,data6
id3,data4,data5,data6
id4,data4,data5,data6
y
$ join -t, -j1 in1 in2
id1,data1,data2,data3,data4,data5,data6
id2,data1,data2,data3,data4,data5,data6
id3,data1,data2,data3,data4,data5,data6
id4,data1,data2,data3,data4,data5,data6
$ join -t, -a1 -a2 -j1 in1 in2
id1,data1,data2,data3,data4,data5,data6
id2,data1,data2,data3,data4,data5,data6
id3,data1,data2,data3,data4,data5,data6
id4,data1,data2,data3,data4,data5,data6
x
y

如果您想查看不匹配的行,请使用-a1 -a2选项,否则不要查看。

请注意,文件需要排序,如果尚未排序,您可以使用 sort 命令进行排序。

sort in1 > in1.sorted
sort in2 > in2.sorted

关于unix - 使用 AWK/SED 根据唯一 ID 连接两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com