首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在标签之间提取信息

在标签之间提取信息
EN

Unix & Linux用户
提问于 2013-11-07 04:46:08
回答 2查看 174关注 0票数 0

我有一个文本文件,下面显示了文件内容的示例:

1234一个新的同源结构域编码基因与一个大的CpG岛有关,该岛被肌营养不良不稳定(CTG)n重复序列所打断。肌营养不良(DM)与蛋白激酶编码基因DMPK的( CTG )n三核苷酸重复扩增有关,该基因位于19q13染色体上。3.这种基因在病人组织中表达的特征,迄今产生了关于DMPK mRNA稳态水平的变化和在存在扩张时的最终DMPK蛋白水平的相互矛盾的数据。19号染色体的DM区基因丰富,重复扩增可能导致附近多个转录单元功能障碍,可能是染色质断裂的结果。我们已经在DMPK的3端寻找与CpG岛相关的基因。该区域的序列显示,该岛屿延伸超过3个。5kb,被( CTG )n重复序列打断。在人类和小鼠的基因组序列下游(着丝粒)的比较,确定了具有显著同源性的区域。它们对应于预测编码同源结构域蛋白的基因的外显子。RT-PCR分析表明,该基因被称为DM位点相关同源结构域蛋白( DMAHP ),在骨骼肌、心脏和大脑等多种组织中均有表达。

我需要提取标记之间的内容:例如,

代码语言:javascript
运行
复制
<category="SpecificDisease">Myotonic dystrophy</category>

我需要提取“肌营养不良”并写入一个新的文本文件。

EN

回答 2

Unix & Linux用户

发布于 2013-11-07 13:51:09

您可以使用grep查找标记之间的文本,然后使用sed删除标记本身:

代码语言:javascript
运行
复制
$ grep -oP '<category.+?>.*?</category>' file.txt | sed 's/<.*>\(.*\)<.*>/\1/'
myotonic dystrophy
Myotonic dystrophy
DM
DM
DM

解释

  • grep -oP-Pgrep启用了PCRE-o使其只打印匹配的字符串。
  • '<category.+?>.*?</category>':这告诉grep搜索打开和关闭category标记之间的所有内容。
  • sed 's/<.*>\(.*\)<.*>/\1/':上面grep的输出通过管道传输到sed,后者只需将标记替换为它们的内容(这里是\1,因为使用了括号来捕获它们)。
票数 1
EN

Unix & Linux用户

发布于 2013-11-07 07:55:33

这可以通过PCRE完成,我已经尝试过了。但还没有完全理解。

下面是我尝试和工作的例子:

代码语言:javascript
运行
复制
grep -oP '(?:<category=[A-Za-z\"\s]*>)[A-Za-z\s]+(?:<\/category>)' input|\
awk -F">" '{split($2,a,"<"); print a[1]}'
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/99179

复制
相关文章

相似问题

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