gpt4 book ai didi

linux - 连接文件并创建索引

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:01 27 4
gpt4 key购买 nike

我想加入两个文件并将它们索引到一个新列中,如下所示:

文件A

apple     1 2 3 4 5 6
banana 3 2 4 4 5 6
orange 2 3 4 5 6 7
pear 2 4 5 6 3 5

文件B

apple    1 3 4 5 6 7
grapes 4 5 6 4 3 6
melon 3 4 5 2 5 1
orange 2 4 5 6 7 8

我想根据前两列比较两个文件,并输出文件 A 中的公共(public)行,然后添加文件 A 和文件 B 中的唯一行并对其进行索引,如下所示

输出:

apple     1 2 3 4 5 6 both
orange 2 3 4 5 6 7 both
banana 3 2 4 4 5 6 fileA
pear 2 4 5 6 3 5 fileA
grapes 4 5 6 4 3 6 fileB
melon 3 4 5 2 5 1 fileB

最佳答案

comm 比较两个文件并报告哪些行出现在一个、另一个或两个文件中:

comm -2 <(cut -f1 -d' ' fileA | sort)
<(cut -f1 -d' ' fileB | sort) \
| sed $'/\t/{s/$/ both/;s/\t//};/ /!s/$/ fileA/' \
| join -o1.1,2.2,2.3,2.4,2.5,2.6,2.7,1.2 - fileA \
| sort -k8
cut -f1 -d' ' fileA \
| grep -vFf- fileB \
| sed 's/$/ fileB/'

正如您所看到的,管道非常复杂。如果您打算更改代码,请考虑转向更强大的语言,例如 Perl。

关于linux - 连接文件并创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259135/

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