0

私はbashスクリプトを初めて使用し、次のことを行うためのbashスクリプトを作成したいと思います。次のように2つのタブ区切りファイルがあります。

# file1 #
## position id 
.
.
.


# file2
## position type
. 
.
.

ファイル2は、位置列に関するファイル1のサブセットです。file2のすべての行について、file1の同じ位置にある行を検索し、file3に次のように書き出すようにfile3を生成したいと思います。

position id type
.
.
.

したがって、基本的にfile1とfile2(最初の列)の間の共通の位置を見つけて、それらをIDとタイプ(それぞれのファイルの列2)とともに書き出す必要があります。私はPythonを使用してこれを行う方法を知っていますが、bashスクリプトを使用してこのような手順を実行する方法を学びたいと思います-上記の問題のサンプルコードをいただければ幸いです。

追記:

各列の値は次のとおりです。

  • 位置:chr1:887799
  • id:R2A
  • タイプ:analphabeticstring

ありがとう

4

2 に答える 2

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

あなたをそこに連れて行くべきです

join の man ページには、より多くの背景とサンプルがあります。

于 2012-05-14T22:23:00.783 に答える
-1

最初に、ファイルをタブ区切りにする必要があります。その後、次のように簡単です

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