如何基于单列合并两个文件

如何基于单列合并两个文件

我想合并两个文件。我查看了之前的问题和答案,但没有一个符合我想要的输出。
有两个 csv 文件 - file1.csv、file2.csv。 file1.csv 和 file2.csv 的长度不同。程序应该合并两个文件并根据第 1 列
输入打印两个文件中的所有内容

file1.csv 有 4 列。

$ cat file1.csv
Contig_Spider_Gland_98_1_1,>Contig_Spider_Gland_98_1_1 [1169 - 963] (REVERSE SENSE),MQGHRRKLATPRQRAPRKERQRALLLRLQWRIGLQPCSRRNKSLDRKNIYWRYLVEYGSWKGRTHISDV,C# 
Contig_Spider_Gland_98_7_3,>Contig_Spider_Gland_98_17965_1 [90 - 278],MADVEKTSCCTETKECCKDETCCENGQGACHTGKEECKDTCHKKACGCKAGEDCKCSDGKCGC,CC#CC#CC#C#C#C#C#C#C#C#C#C# 

$ cat file2.csv
Contig_Spider_Gland_98_1_1, SignalP-4.1,     SIGNAL,  1,    22, 0.808,  YES
Contig_Spider_Gland_98_8_2, SignalP-4.1,    SIGNAL  1,  20, 0.877,  YES

输出

Contig_Spider_Gland_98_1_1,>Contig_Spider_Gland_98_1_1 [1169 - 963] (REVERSE SENSE),MQGHRRKLATPRQRAPRKERQRALLLRLQWRIGLQPCSRRNKSLDRKNIYWRYLVEYGSWKGRTHISDV,C#,Contig_Spider_Gland_98_1_1, SignalP-4.1,     SIGNAL,  1,   22, 0.808,  YES
Contig_Spider_Gland_98_7_3,>Contig_Spider_Gland_98_17965_1 [90 - 278],MADVEKTSCCTETKECCKDETCCENGQGACHTGKEECKDTCHKKACGCKAGEDCKCSDGKCGC,CC#CC#CC#C#C#C#C#C#C#C#C#C#,no match

感谢您的帮助

答案1

这是你想要的吗?

join -t, file1.csv file2.csv -a 1 -o auto -e 'no match'
Contig_Spider_Gland_98_1_1,>Contig_Spider_Gland_98_1_1 [1169 - 963] (REVERSE SENSE),MQGHRRKLATPRQRAPRKERQRALLLRLQWRIGLQPCSRRNKSLDRKNIYWRYLVEYGSWKGRTHISDV,C# , SignalP-4.1,     SIGNAL,  1,    22, 0.808,  YES
Contig_Spider_Gland_98_7_3,>Contig_Spider_Gland_98_17965_1 [90 - 278],MADVEKTSCCTETKECCKDETCCENGQGACHTGKEECKDTCHKKACGCKAGEDCKCSDGKCGC,CC#CC#CC#C#C#C#C#C#C#C#C#C# ,no match,no match,no match,no match,no match,no match

如果还需要打印 file2 中的行:

join -t, file1.csv file2.csv -a 1 -a2 -o auto -e 'no match'
Contig_Spider_Gland_98_1_1,>Contig_Spider_Gland_98_1_1 [1169 - 963] (REVERSE SENSE),MQGHRRKLATPRQRAPRKERQRALLLRLQWRIGLQPCSRRNKSLDRKNIYWRYLVEYGSWKGRTHISDV,C# , SignalP-4.1,     SIGNAL,  1,    22, 0.808,  YES
Contig_Spider_Gland_98_7_3,>Contig_Spider_Gland_98_17965_1 [90 - 278],MADVEKTSCCTETKECCKDETCCENGQGACHTGKEECKDTCHKKACGCKAGEDCKCSDGKCGC,CC#CC#CC#C#C#C#C#C#C#C#C#C# ,no match,no match,no match,no match,no match,no match
Contig_Spider_Gland_98_8_2,no match,no match,no match, SignalP-4.1,    SIGNAL  1,  20, 0.877,  YES,no match

相关内容