【发布时间】:2018-10-19 07:54:30
【问题描述】:
我有一个从 BLAST 2.5.0+ 生成的 xml 文件。我想做一些改变。具体来说,我想把 OS= 之后的所有单词放在我的文件中,方法是把它放在 [] 中。我的原始文件格式如下:-
<Hit_num>1</Hit_num>
<Hit_id>TR:V4U0L5_9ROSI</Hit_id>
<Hit_def>gnl|V4U0L5| Uncharacterized protein OS=Homo sapien
OX=393305 GN=CICLE_v10008136mg PE=4 SV=1</Hit_def>
<Hit_accession>TR:V4U0L5_9ROSI</Hit_accession>
<Hit_len>388</Hit_len>
使用以下 CMD:-sed -E 's/<Hit_def>(.*)OS=([A-Za-z\.\-\,\_ ]+)(( [A-Z]+=.*))<\/Hit_def>/<Hit_def>\1[\2]\3<\/Hit_def>/g' input.xml > output.xml,我设法得到以下信息:-
<Hit_num>1</Hit_num>
<Hit_id>TR:V4U0L5_9ROSI</Hit_id>
<Hit_def>gnl|V4U0L5| Uncharacterized protein [Homo sapien]
OX=393305 GN=CICLE_v10008136mg PE=4 SV=1</Hit_def>
<Hit_accession>TR:V4U0L5_9ROSI</Hit_accession>
<Hit_len>388</Hit_len>
但是,OS= 之后的一些词有不同的特点。例如:-
<Hit_num>1</Hit_num>
<Hit_id>TR:V4U0L5_9ROSI</Hit_id>
<Hit_def>gnl|V4U0L5| Uncharacterized protein OS=Yersinia enterocolitica serotype O:8 / biotype 1B (strain NCTC 13174 / 8081)
OX=393305 GN=CICLE_v10008136mg PE=4 SV=1</Hit_def>
<Hit_accession>TR:V4U0L5_9ROSI</Hit_accession>
<Hit_len>388</Hit_len>
使用与上面相同的 CMD,这些词根本不会放在 [] 内。如何使用 Mac OS X 将 OS= 之后的所有内容包含到 [] 中?
【问题讨论】:
-
在
OS=之后识别字符串结尾的标准是什么,会一直跟在GN=后面吗? -
OS=之后字符串的结尾是OX=