首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查“块”是否有唯一的模式

检查“块”是否有唯一的模式
EN

Ask Ubuntu用户
提问于 2018-03-26 09:33:33
回答 1查看 162关注 0票数 3

我有一个文件,其数量为“块”(本例中为三个块),如下所示:

代码语言:javascript
复制
A4_RAT  Amyloid-beta A4 protein;    P08592  PDB; 1M7E; X-ray; 2.45 A; D/E/F=755-763.
                                    PDB; 1NMJ; NMR; -; A=672-699.
                                    PDB; 1OQN_I3P.pdb; X-ray; 2.30 A; C/D=755-763.
                                    PDB; 2LI9; NMR; -; A/B=672-687.

AACP_AGRFC  Aminoacyl carrier protein;  A9CHM9          PDB; 2JQ4; NMR; -; A=1-83.
                                    PDB; 4H2W_5GP.pdb; X-ray; 1.95 A; C/D=1-83.
                                    PDB; 4H2X_G5A.pdb; X-ray; 2.15 A; C/D=1-83.
                                    PDB; 4H2Y; X-ray; 2.10 A; C/D=1-83.

AADB1_KLEPN 2''-aminoglycoside nucleotidyltransferase;  P0AE05  PDB; 4WQK; X-ray; 1.48 A; A=1-177.
                                    PDB; 4WQL; X-ray; 1.73 A; A=1-177.
                                    PDB; 5KQJ_GOL.pdb; NMR; -; A=1-177.

每个‘块’都有PDB;XXXX/XXXX_XXX.pdb;Xray/NMR;列。从前一句(XXXX;XXXX_XXX.pdb;X-ray; or NMR;)的最后两列中,我在每个块中遇到了几个选项:

XXXX; X-ray; XXXX_XXX.pdb; X-ray; XXXX; NMR; XXXX_XXX.pdb; NMR;

我只想搜索那些只有XXXX_XXX.pdb; X-ray;的“块”,只搜索那些只有XXXX_XXX.pdb; NMR;的“块”。

在这里的例子中,如果我搜索那些只有XXXX_XXX.pdb; X-ray;的,我希望结果是:

代码语言:javascript
复制
A4_RAT  Amyloid-beta A4 protein;    P08592  PDB; 1M7E; X-ray; 2.45 A; D/E/F=755-763.
                                    PDB; 1NMJ; NMR; -; A=672-699.
                                    PDB; 1OQN_I3P.pdb; X-ray; 2.30 A; C/D=755-763.
                                    PDB; 2LI9; NMR; -; A/B=672-687.

AACP_AGRFC  Aminoacyl carrier protein;  A9CHM9          PDB; 2JQ4; NMR; -; A=1-83.
                                    PDB; 4H2W_5GP.pdb; X-ray; 1.95 A; C/D=1-83.
                                    PDB; 4H2X_G5A.pdb; X-ray; 2.15 A; C/D=1-83.
                                    PDB; 4H2Y; X-ray; 2.10 A; C/D=1-83.

另一方面,如果我搜索那些只有XXXX_XXX.pdb; NMR;的,我希望得到的结果是:

代码语言:javascript
复制
AADB1_KLEPN 2''-aminoglycoside nucleotidyltransferase;  P0AE05  PDB; 4WQK; X-ray; 1.48 A; A=1-177.
                                    PDB; 4WQL; X-ray; 1.73 A; A=1-177.
                                    PDB; 5KQJ_GOL.pdb; NMR; -; A=1-177.

有没有人知道怎么在巴什做这件事?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2018-03-26 10:55:05

正如您在问题中所显示的,每个街区之间都有空行,因此:

代码语言:javascript
复制
$ awk -v RS='\n\n' '/...._...\.pdb; NMR;/' RS= infile
AADB1_KLEPN 2''-aminoglycoside nucleotidyltransferase;  P0AE05  PDB; 4WQK; X-ray; 1.48 A; A=1-177.
                                    PDB; 4WQL; X-ray; 1.73 A; A=1-177.
                                    PDB; 5KQJ_GOL.pdb; NMR; -; A=1-177.
代码语言:javascript
复制
$ awk -v RS='\n\n' '/...._...\.pdb; X-ray;/' RS= infile
A4_RAT  Amyloid-beta A4 protein;    P08592  PDB; 1M7E; X-ray; 2.45 A; D/E/F=755-763.
                                    PDB; 1NMJ; NMR; -; A=672-699.
                                    PDB; 1OQN_I3P.pdb; X-ray; 2.30 A; C/D=755-763.
                                    PDB; 2LI9; NMR; -; A/B=672-687.
AACP_AGRFC  Aminoacyl carrier protein;  A9CHM9          PDB; 2JQ4; NMR; -; A=1-83.
                                    PDB; 4H2W_5GP.pdb; X-ray; 1.95 A; C/D=1-83.
                                    PDB; 4H2X_G5A.pdb; X-ray; 2.15 A; C/D=1-83.
                                    PDB; 4H2Y; X-ray; 2.10 A; C/D=1-83.

要保留空行,请删除RS=并添加语句{print $0"\n"}

代码语言:javascript
复制
$ awk -v RS='\n\n' '/...._...\.pdb; NMR;/{print $0"\n"}' infile
$ awk -v RS='\n\n' '/...._...\.pdb; X-ray;/{print $0"\n"}' infile
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1019294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档