Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux上连接两个文件_Linux_Unix - Fatal编程技术网

在linux上连接两个文件

在linux上连接两个文件,linux,unix,Linux,Unix,我正在尝试连接两个文件,但它们的行数不同。我需要通过第二列连接它们 文件1: 11#San Noor#New York, US 22#Maria Shiry#Dubai, UA 55#John Smith#London, England 66#Viki Sam#Roman, Italy 81#Sara Moheeb#Montreal, Canada 文件2: C1#Steve White#11 C2#Hight Look#21 E1#The Heaven is more#52

我正在尝试连接两个文件,但它们的行数不同。我需要通过第二列连接它们

文件1:

 11#San Noor#New York, US
 22#Maria Shiry#Dubai, UA
 55#John Smith#London, England
 66#Viki Sam#Roman, Italy
 81#Sara Moheeb#Montreal, Canada
文件2:

 C1#Steve White#11
 C2#Hight Look#21
 E1#The Heaven is more#52
 I1#The Roma Seen#55
输出应为:

成对的行的输出应如下所示:

 San Noor#Sereve White  
 Sara Moheeb#NA
不成对的行的输出应如下所示:

 San Noor#Sereve White  
 Sara Moheeb#NA
(加入后的文件3应包含5行,如下所示。)

我已尝试使用以下命令连接这两个文件:

join -t '#' -j2 -e "NA" <(sort -t '#' -k2 File1) <(sort -t '#' -k2 File2) > File3

join-t'#'-j2-e“NA”提取相关列并将它们粘贴在一起

paste -d '#' <(cut -d '#' -f2 file1) <(cut -d '#' -f2 file2)

您的文件没有任何共同的第二列条目…请向我们展示您希望合并的文件的外观@Shawn是对的。在我看来,你想
粘贴
文件,而不是
加入
(ach,那些unix命令名…)。你能给我解释一下这行代码吗:join-t'#'-eNA-a1-a2-o1.2,2.2这行中你到底不明白什么?“-a1-a2-o1.2,2.2”和“nl-w1-s”见和<代码>-a
还打印文件中不成对的行<代码>-o指定输出格式-我对第一个文件的第二列和第二个文件的第二列感兴趣。默认情况下,
-w
6
,因此默认情况下
nl
添加前导空格。因此,我使用
-w1
将数字粘在左边
-s
nl
设置数字分隔符。测试一下-
seq5 | nl
vs
seq5 | nl-w1-s'
。。。。