1

これについて何か助けていただければ幸いです。

現在、2 つのテキスト ファイルがあり、fileA.txt は次のようになります。

AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB201 0.101 0.298 0.001
AB209 0.245 0.199 0.222

など。基本的には、サイトのリストの後に一連の座標が続きます。

2 番目のテキスト ファイル fileB.txt は、サイト名だけのリストです。たとえば、次のようになります。

AB101
AB307
AB209

私がやりたいことは、fileB にリストされているエントリのみを含むが、fileA に示されているすべての詳細を含む 3 番目のファイルを作成することです。つまり、上記のエントリを使用すると、次のような fileC.txt が生成されます。

AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB209 0.245 0.199 0.222

できればawkなどを使用して、これを行う方法を知っている人はいますか?

4

2 に答える 2

6

この仕事にはgrepで十分です:

grep -Fwf fileB.txt fileA.txt
AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB209 0.245 0.199 0.222
于 2013-10-22T16:40:40.930 に答える
2

これにより、最初の単語が fileB の行である fileA の行が出力されます。

$ awk 'NR==FNR{a[$0];next}$1 in a' fileB fileA
AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB209 0.245 0.199 0.222
于 2013-10-22T16:17:22.363 に答える