将 2 个列表与要打印的附加数据进行比较

将 2 个列表与要打印的附加数据进行比较

我有一个文件,比如说 file1.txt

ENSG00000223116 AL157931.1  
ENSG00000233440 HMGA1P6 
ENSG00000207157 RNY3P4  
ENSG00000229483 LINC00362   
ENSG00000252952 RNU6-58P

我有另一个文件 file2.txt

ENSG00000223117 0   0
ENSG00000223116 0   0
ENSG00000233440 1.71449394  50

我想比较 file1 和 file2 的 ENSG 名称并获取输出,如果文件 1 中的 ENSG 名称存在于 file2 中,则输出应该是

ENSG00000223116 0   0 AL157931.1
ENSG00000233440 1.71449394  50 HMGA1P6

我可以为此编写一个 perl 脚本,但我只想在命令行上执行此操作。如何做呢?

问候

答案1

如果您之前对文件进行了排序,您可以通过一种简单的方式进行:

$ join file2 file1
ENSG00000223116 0 0 AL157931.1
ENSG00000233440 1.71449394 50 HMGA1P6

要对文件进行排序,只需执行以下操作:

sort file1.txt > file1
sort file2.txt > file2

相关内容