단일 열을 기반으로 두 파일을 병합하는 방법

단일 열을 기반으로 두 파일을 병합하는 방법

두 개의 파일을 병합하고 싶습니다. 이전 질문과 답변을 살펴봤지만 원하는 결과와 일치하는 항목이 없습니다.
두 개의 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

관련 정보