【发布时间】:2021-09-02 19:59:47
【问题描述】:
我有两个 .txt 文件。文件 1.txt 和文件 2.txt。如何在 unix 中基于一个公共列合并这两个文件(可能与 awk 一起使用)。
File1.txt 看起来像
Sub_ID Sam_ID v1
1878372 2253734 SAMN06396112
1883177 2264293 SAMN06414028
1884646 2275341 SAMN06432785
1860945 2277481 SAMN06407597
File2.txt 看起来像
Sam_ID code V3 V4
2253734 20481 NA DNA
2275341 20483 NA DNA
2277481 20488 NA DNA
合并后的最终输出文件应该是这样的
Finalfile.txt
Sub_ID Sam_ID v1 code V3 V4
1878372 2253734 SAMN06396112 20481 NA DNA
1884646 2275341 SAMN06432785 20483 NA DNA
1860945 2277481 SAMN06407597 20488 NA DNA
到目前为止,我已经尝试过加入,但可能是我没有完全理解该命令(对 unix 来说是新手)。
sort -k2b File1.txt >sorted_file1.txt
sort File2.txt >sorted_file2.txt
join -1 2 sorted_file1.txt sorted_file2.txt > Finalfile.txt
我知道,通过 k2b,我指定 File_1 的第二列在两个列之间通用,然后合并。
【问题讨论】:
-
能否请您向我们展示您的任何尝试?
-
您可以使用支持关系数据库的编程语言并使用它来创建 SQLite 数据库,然后在两个“表”之间执行连接并生成您想要的输出。
-
两个文件中的字段分隔符是什么?一个制表符还是多个空格?
-
一个标签。 @赛勒斯