gpt4 book ai didi

linux - Bash 连接多个字段

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:39 26 4
gpt4 key购买 nike

我有两个文件,如下所示:

文件1

a b 1 1
b d 2 3

文件2

a 10 11
b 20 21
d 30 31

我想加入他们以获得以下输出,这是第一个文件,其中包含前两个字段在 file2 中写入的内容:

a b 1 1 10 11 20 21
b d 2 3 20 21 30 31

我尝试使用join,但是我无法根据file1的前两个字段连接文件。

最佳答案

因为你想加入两行,你需要加入两次,将第一个的标准输出管道连接到第二个的标准输入:

join -11 -21 file1 file2 | join -12 -21 - file2

编辑:哎呀,把前两个字段的顺序颠倒了,可以吗?

b a 1 1 10 11 20 21
d b 2 3 20 21 30 31

编辑 2:这可能更好——如果您反转连接的顺序,您将以正确的顺序获得前两列,但连接的列将被交换:

join -12 -21 file1 file2 | join -12 -21 - file2

产量:

a b 1 1 20 21 10 11
b d 2 3 30 31 20 21

好的,我想我们明白了——根据 Michael Vehrs 的建议编辑 3:

join -11 -21 file1 file2 | join -o "1.1 1.2 1.3 1.4 1.5 1.6 2.2 2.3" -12 -21 - file2

产量:

a b 1 1 10 11 20 21
b d 2 3 20 21 30 31

关于linux - Bash 连接多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38267986/

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