다양한 단백질 항목에 대한 정보가 포함된 파일이 있습니다. 각 항목에는 서열 세부사항(맨 위 행), 서열에서 문자가 발견된 횟수(두 번째 행), 세 번째 행의 아미노산 문자가 포함됩니다.
아래에 주어진 예:
sp|Q5N386|PETN_SYNP6 Cytochrome b6-f complex subunit 8 OS=Synechococcus sp. (strain ATCC 27144 / PCC 6301 / SAUG 1402/1) OX=269084 GN=petN PE=3 SV=1
A=4 D=1 E=1 F=4 G=5 I=1 L=5 M=2 N=1 R=1 S=2 T=2 V=3 W=2
Amino acid alphabet = 14
sp|Q20EX4|PETG_OLTVI Cytochrome b6-f complex subunit 5 OS=Oltmannsiellopsis viridis OX=51324 GN=petG PE=3 SV=1
A=2 D=1 E=1 F=1 G=4 I=1 L=7 M=1 P=2 Q=1 R=2 S=1 T=2 V=6 Y=2
Amino acid alphabet = 15
sp|P81612|MYTA_MYTED Mytilin-A OS=Mytilus edulis OX=6550 PE=1 SV=1
A=5 C=8 F=2 G=4 K=4 R=6 S=3 W=1 Y=1
Amino acid alphabet = 9
가 있는 모든 항목을 찾고 싶을 때 Amino acid alphabet = 9
이전 두 줄도 다른 파일로 인쇄하려면 어떤 명령을 사용해야 합니까? 이러한 출력 파일은 다음과 같아야 합니다.
sp|P81612|MYTA_MYTED Mytilin-A OS=Mytilus edulis OX=6550 PE=1 SV=1
A=5 C=8 F=2 G=4 K=4 R=6 S=3 W=1 Y=1
Amino acid alphabet = 9
답변1
GNU는 이에 대한 ( ) 옵션을 grep
제공합니다 :-B
--before-context
grep -F -B2 -x 'Amino acid alphabet = 9' file
이 옵션이 없으면 grep
다음을 사용할 수 있습니다 awk
.
awk -v RS= '/Amino acid alphabet = 9$/' file
(귀하의 예와 같이 귀하의 기록이 빈 줄로 구분되어 있다고 가정합니다)