1

あるファイルの内容を別のファイルで検索し、一致した行と一致した行の次の行を 2 番目のファイルから出力したいと考えています。>最初のファイルの内容は、2 番目のファイルの列の下で始まる行GNにあります。一致する行 ( で始まる>) に続いて、アミノ酸の配列 ( 「M」で始まる大文字の文字列)を含む行を書きたいと思います。

ファイル 1:

thrB
yaaX
thrC
dnaK
dnaJ

ファイル 2:

>sp|B1XBC8|KHSE_ECODH Homoserine kinase OS=Escherichia coli (strain K12 / DH10B) OX=316385 GN=thrB PE=3 SV=1
MVKVYAPASSANMSVGFDVLGAAVTPVDGALLGDVVTVEAAETFSLNNLGRFADKLPSEP
>sp|P0AD61|KPYK1_ECOLI Pyruvate kinase I OS=Escherichia coli (strain K12) OX=83333 GN=pykF PE=1 SV=1
MKKTKIVCTIGPKTESEEMLAKMLDAGMNVMRLNFSHGDYAEHGQRIQNLRNVMSKTGKT
>sp|P75616|YAAX_ECOLI Uncharacterized protein YaaX OS=Escherichia coli (strain K12) OX=83333 GN=yaaX PE=3 SV=1
MKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHGWWKQH

そして、私は次のような出力を期待しています:

>sp|B1XBC8|KHSE_ECODH Homoserine kinase OS=Escherichia coli (strain K12 / DH10B) OX=316385 GN=thrB PE=3 SV=1
MVKVYAPASSANMSVGFDVLGAAVTPVDGALLGDVVTVEAAETFSLNNLGRFADKLPSEP
>sp|P75616|YAAX_ECOLI Uncharacterized protein YaaX OS=Escherichia coli (strain K12) OX=83333 GN=yaaX PE=3 SV=1
MKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHGWWKQH

これまで のところgrep -F -f file1 file2 、一致が見つかった行のみを出力しようとしました

awkでは、一致する行を印刷できると書いただけです awk 'NR==FNR{a[$1]++;next}{} file1 file2 が、その後の行を印刷する方法がわかりません(「M」で始まります)。

これを乗り越えるのを手伝ってくれる人はいますか?

あなたの助けに本当に感謝しています。

また、2 番目のファイルにファイル 1 の文字列の複数の一致があり、そのような出現箇所をすべて印刷したい場合はどうすればよいでしょうか?

前もって感謝します

4

2 に答える 2