在linux上连接两个文件
我正在尝试连接两个文件,但它们的行数不同。我需要通过第二列连接它们 文件1:在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
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
vsseq5 | nl-w1-s'
。。。。