It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center
                            
                        
                    
                
                                7年前关闭。
            
                    
我有一个要求,其中fileA包含具有几列的行的列表,其中一列是emaillist,它们被命名为emaillist[1,2,3,..]。我定义了另一个文件fileB,其中已将值分配给emailist[1,2,3,..]变量。我阅读了fileA,并想阅读在emailist中定义的fileB

FileA:

XXX1 YYY1 emailist1
XXX2 YYY2 emailist2


文件B:

[email protected]
[email protected]


Shell脚本:

Read fileA

email = $3


这是我的挑战,如何读取在emailist1中定义的fileB

最佳答案

使用join命令:

$ cat fileA
XXX1 YYY1 emailist1
XXX2 YYY2 emailist2

$ cat fileB
emailist1 [email protected]
emailist2 [email protected]

$ join -1 3 -2 1 -o '1.1 1.2 2.2' <(sort fileA -k3,3) <(sort fileB)
XXX1 YYY1 [email protected]
XXX2 YYY2 [email protected]


join命令要求首先对数据进行排序,因此我们先按sort排序emaillist文件,然后将column 3中的file 1column 1中的file 2,即-1 3 -2 1联接在一起。 -o选项用于以几乎相同的方式指定要输出的字段,因为您没有明确指定我猜fileA的字段1和2,以及fileB1.1 1.2 2.2的字段2。

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

08-27 18:43