2つの.csvファイルがあり、File1.csvには〜100の列と60,000の行があり、File2.csvには2つの列と57,000の行があります。どちらのファイルにも共通列(gene_symbol)があります。 file1.csv と file2.csv の gene_symbol が一致する場合は、新しいファイルを作成する必要があり、file1.csv のヘッダーを含むすべての行を新しいファイルにインポートする必要があります。
ファイル1.csv
gene_symbol TCGA-HZ-A4BH-01A-11R-A26U-07 TCGA-IB-8127-01A-11R-2404-07
ENSG00000000003 2212 5047
ENSG00000000005 39 2
ENSG00000000419 1571 3337
ENSG00000000457 1046 1832
ENSG00000000460 441 512
ENSG00000000938 1059 1935
ENSG00000000971 4628 8834
ENSG00000001036 2388 3976
ENSG00000001084 1385 3352
ENSG00000001167 1395 4373
ENSG00000001460 484 913
ENSG00000001461 1741 4199
ファイル2.csv
gene_symbol entrezgene
ENSG00000000003 7105
ENSG00000000005 64102
ENSG00000000419 8813
ENSG00000000457 57147
ENSG00000000460 55732
ENSG00000000938 2268
ENSG00000000971 3075
ENSG00000001036 2519
ENSG00000001084 2729
ENSG00000001167 4800
ENSG00000001460 90529
ENSG00000001461 57185
次の出力を探しています。
ファイル3.csv
gene_symbol entrezgene TCGA-HZ-A4BH-01A-11R-A26U-07 TCGA-IB-8127-01A-11R-2404-07 TCGA-F2-7273-01A-11R-2156-07
ENSG00000000003 7105 2212 5047 3078
ENSG00000000005 64102 39 2 3
ENSG00000000419 8813 1571 3337 1876
ENSG00000000457 57147 1046 1832 1495
ENSG00000000460 55732 441 512 294
ENSG00000000938 2268 1059 1935 3323
ENSG00000000971 3075 4628 8834 23071
ENSG00000001036 2519 2388 3976 3715
ENSG00000001084 2729 1385 3352 3529
ENSG00000001167 4800 1395 4373 2996
ENSG00000001460 90529 484 913 772
ENSG00000001461 57185 1741 4199 4016
答え1
私はGNU Coreutilsがjoin
あなたのコマンドだと思います:
join file2.csv file1.csv > file3.csv
CSVファイルがタブで区切られておらず、カンマで区切られている場合は、以下を使用してください。
join -t, file2.csv file1.csv > file3.csv
答え2
この試み、
join <(sort -r file2.csv) <(sort -r file1.csv) > file3.csv