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

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

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

1行からヒットアイテムを検索してから、行全体を印刷するコマンドが必要です。好ましくは大文字と小文字を区別せず、名前が大きい単語の一部であるFILE2の行を印刷しません。

私は以下を試しました:

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

最初は、単にFILE1を外部にコピーします。 2番目は空のファイルを提供します。

また、いくつかのawkコマンドを試しましたが、空のファイルを提供するか、上記のようにFILE1をコピーしました。私は現在、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を含めました。

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

おすすめ記事