Я хочу найти содержимое одного файла в другом файле и распечатать совпадающую строку и строку, которая следует за совпадающей строкой из второго файла.Содержимое первого файла можно найти в строках, начинающихся с >
в столбце 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»).
Может ли кто-нибудь помочь мне пройти через это?
Буду очень признателен за вашу помощь.
Кроме того, что если в моем втором файле есть несколько совпадений строки вфайл 1, и я хочу напечатать все такие случаи?
Заранее спасибо