gpt4 book ai didi

bash - 加入列但打印两个文件中的所有行

转载 作者:行者123 更新时间:2023-11-29 09:43:53 24 4
gpt4 key购买 nike

假设我有 file1:

2 luke
3 matthew
4 mark
7 john

我有

1 chicken
2 beef
5 lamb
6 fish

我想要以下内容:

1 [tab]chicken
2 luke[tab]beef
3 matthew[tab]
4 mark[tab]
5 lamb[tab]
6 fish[tab]
7 [tab]john

有点像“加入”,但我也想要其他列。我知道我可以使用 3 个“comm”来完成它并使用 sort 摆弄它但是是否有一个命令可以做到这一点?

最佳答案

你只需要在 join 中使用几个选项:

join -a1 -a2 -o 0,1.2,2.2 -e $'\t' tmp1.txt tmp2.txt

-a1-a2 告诉 join 从文件 1 和文件 2 中输出无法配对的行(所以所有行来自两个文件都包括在内)。 -o 在输出中指定三列:连接字段 (0)、第一个文件的第二列和第二个文件的第二列。 -e 指定一个字符串来填充空字段(未找到的字段)。 $'\t' 是一个 bash 扩展;一种更兼容的传递制表符的方法是 -e $(printf '\t')

关于bash - 加入列但打印两个文件中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22488482/

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