gpt4 book ai didi

linux - UNIX 中两个文件的基于字段的连接

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:00 24 4
gpt4 key购买 nike

我有一个要求,其中 fileA包含具有多列的行列表,其中一列是 emaillist其名称为emaillist[1,2,3,..] 。我定义了另一个文件 fileB我已将值分配给 emailist[1,2,3,..]多变的。我读过fileA并想阅读emailist定义于 fileB .

文件A:

XXX1 YYY1 emailist1
XXX2 YYY2 emailist2

文件B:

emailist1=abcd@xyz.com 
emailist2=xyz@zbc.com

Shell 脚本:

Read fileA

email = $3

这是我的挑战,如何阅读 emailist1定义于 fileB

最佳答案

使用加入命令:

$ cat fileA
XXX1 YYY1 emailist1
XXX2 YYY2 emailist2

$ cat fileB
emailist1 abcd@xyz.com
emailist2 xyz@zbc.com

$ join -1 3 -2 1 -o '1.1 1.2 2.2' <(sort fileA -k3,3) <(sort fileB)
XXX1 YYY1 abcd@xyz.com
XXX2 YYY2 xyz@zbc.com

join 命令要求首先对数据进行排序,因此我们按 emaillist 对文件进行排序,然后将 file 1 中的 column 3file 2 中的 column 1 连接起来,即 -1 3 -2 1-o 选项用于以大致相同的方式指定要输出的字段,因为您没有明确指定我猜测 fileA 中的字段一和二以及 fileB 中的字段 2:1.1 1.2 2.2

注意:将 = 更改为 fileB 中的空格,如 sed 's/=//' fileB

关于linux - UNIX 中两个文件的基于字段的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14112015/

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