gpt4 book ai didi

linux - unix join命令返回一个文件中的所有列

转载 作者:太空狗 更新时间:2023-10-29 12:22:51 25 4
gpt4 key购买 nike

我有两个文件要加入一栏。加入后,我只想输出所有列,按原始顺序,仅来自一个文件。例如:

cat file1.tsv 
1 a ant
2 b bat
3 c cat
8 d dog
9 e eel

cat file2.tsv
1 I
2 II
3 III
4 IV
5 V

join -1 1 -2 1 file1.tsv file2.tsv -t $'\t' -o 1.1,1.2,1.3
1 a ant
2 b bat
3 c cat

我知道我使用 -o 1.1,1.2.. 符号,但我的文件有两打以上的列。是否有一些通配符可以用来表示 -o 1.* 或其他内容?

最佳答案

我不知道格式字符串中的通配符。

根据您想要的输出,我认为您可以像这样实现您想要的,而无需指定所有枚举:

grep -f <(awk '{print $1}' file2.tsv ) file1.tsv
1 a ant
2 b bat
3 c cat

或者作为一个仅限 awk 的解决方案:

awk '{if(NR==FNR){a[$1]++}else{if($1 in a){print}}}' file2.tsv file1.tsv
1 a ant
2 b bat
3 c cat

关于linux - unix join命令返回一个文件中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53602671/

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