0

我是 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
  • 编号:R2A
  • 类型:字母字符串

谢谢

4

2 回答 2

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

应该带你到那里

join 的手册页有更多的背景和示例:

于 2012-05-14T22:23:00.783 回答
-1

首先,您需要使文件以制表符分隔,然后就像

join -j 1 first.txt second.txt
于 2012-05-14T22:22:20.207 回答