使用bash脚本比较两个文件并写入新文件

时间:2012-05-14 22:14:02

标签: linux bash

我是bash脚本的新手,想写一个bash脚本来执行以下操作。 我有两个制表符分隔文件,如下所示:

# file1 #
## position id 
.
.
.


# file2
## position type
. 
.
.

文件2是关于位置列的文件1的子集。 我想生成file3,使得对于file2中的每一行,它在file1中查找具有相同位置的行,并将以下内容写入file3

position id type
.
.
.

所以,我想基本上找到file1和file2(第一列)之间的公共位置,并将它们与它们的id和类型(相应文件中的第2列)一起写出来。 我知道如何使用python执行此操作,但我想学习如何使用bash脚本执行此类过程 - 我将感谢上述问题的任何示例代码。

  

额外注意事项:

每列中的值如下

  • 职位:chr1:887799
  • id:R2A
  • 类型:analphabeticstring

由于

2 个答案:

答案 0 :(得分:4)

join -a 1 <(sort file1) <(sort file2)

应该带你去那里

联接的手册页有更多背景和样本:

答案 1 :(得分:-1)

首先,你需要将文件分隔开,然后就像

一样简单
join -j 1 first.txt second.txt