リストを使用して大きなタブ区切りファイルから行を抽出する

リストを使用して大きなタブ区切りファイルから行を抽出する

15 列 (FILE1) と、テーブルに表示される名前のリスト (FILE2) を持つ大きなタブ ファイルがあります。問題は、名前が FILE1 の列 4 から 10 に表示され、大文字と小文字が一致しない可能性があることです。

行内でヒットを検索し、その行全体を印刷するコマンドが必要です。大文字と小文字を区別せず、FILE2 内の名前が大きな単語の一部である行は印刷しないのが望ましいです。

私は次のことを試しました:

grep -Fwf FILE2 FILE1 > out 
xargs -I {} grep "^{}" FILE1 < FILE2 > out 

最初のものは FILE1 を out にコピーするだけです。2 番目のものは空の out ファイルを生成します。

また、空のファイルを作成するか、上記のように FILE1 をコピーするコマンドもいくつか試しましたawk。現在、Linux のスキルを向上させようとしているので、可能であれば、その方法を教えていただければ幸いです。

ファイル1

tax_id GeneID  Symbol  LocusTag        Synonyms        dbXrefs chromosome      map_location    description     type_of_gene    Symbol_from_nomenclature_authority      Full_name_from_nomenclature_authority Nomenclature_status      Other_designations      Modification_date
7       5692769 NEWENTRY        -       -       -       -       -       Record to support submission of GeneRIFs for a gene not in Gene (Azotirhizobium caulinodans.  Use when strain, subtype, isolate, etc. is unspecified, or when different from all specified ones in Gene.).     other   -       -       -       -       20160818
9       1246500 repA1   pLeuDn_01       -       -       -       -       putative replication-associated protein protein-coding  -       -       -       -       20160813
9       1246501 repA2   pLeuDn_03       -       -       -       -       putative replication-associated protein protein-coding  -       -       -       -       20160716
9       1246502 leuA    pLeuDn_04       -       -       -       -       2-isopropylmalate synthase      protein-coding  -       -       -       -       20160903
9       1246503 leuB    pLeuDn_05       -       -       -       -       3-isopropylmalate dehydrogenase protein-coding  -       -       -       -       20150520
9       1246504 leuC    pLeuDn_06       -       -       -       -       isopropylmalate isomerase large subunit protein-coding  -       -       -       -       20160806
9       1246505 leuD    pLeuDn_07       -       -       -       -       isopropylmalate isomerase small subunit protein-coding  -       -       -       -       20160730
9       1246509 ibp     pBPS1_01        -       -       -       -       Ibp protein     protein-coding  -       -       -       -       20150801
9       1246510 repA1   pBPS1_02        -       -       -       -       repA1 protein   protein-coding  -       -       -       -       20160813

ファイル2

sacX
arcB
metB
sprT
adrB_2
fadD
trpC
ansP2
group_1428
plsX
repA

答え1

上のコメント欄に答えてください @Philippos と @George Vasiliou の返信を参照

簡単に答えると grep -Fwf FILE2 FILE1 > out

コマンドを実行すると FILE1 がコピーされるという問題が発生していました。これは、FILE2 の末尾の空白行が原因で発生していました。これらの行を削除すると、コマンドは正常に動作しました。

ファイル内のテキストの一部が大文字と小文字が一致しない可能性があるため、上記のコマンドに -i を含めました。

助けてくれた皆さんに感謝します。

関連情報