リスト内の項目ごとにファイルを検索し、項目ごとに新しいファイルを印刷する方法

リスト内の項目ごとにファイルを検索し、項目ごとに新しいファイルを印刷する方法

list_file名前のリストであるファイル()と、data_file数十万行のテキストを含む他のファイル()があります。各行はで始まります。各名前で始まるすべての行を検索し、各名前の行を次にエクスポートしたいとlist_file思います。新しいファイル(名前がリストにある場合)data_filelist_file*.txt*

私はこれを持っています

grep -f "list_file" data_file > out.txt

ただし、これはリストの各行を独自のファイルに分割しません。

サンプルlist_file:

100_fullA
100_fullB
105_fullA
105_fullB
112_fullA
112_fullB
121_fullA
121_fullB

サンプルdata_file:

100_fullA NGATCATCGACAC
100_fullB NGATCATCGACAC
105_fullA NGATCATCGACAC
105_fullB NGATCATCGACAC
112_fullA NGATCATCGACAC
112_fullB NGATCATCGACAC
121_fullA NGATCATCGACAC

ベストアンサー1

list_fileたとえば、連想配列を使用してクエリテーブル(またはハッシュ)を設定できますawk

awk 'NR==FNR {list[$1]=1; next} $1 in list {print > $1".txt"}' list_file data_file

出力はファイルなどに保存されます100_fullA.txt100_fullB.txt

おすすめ記事