【发布时间】:2017-08-15 02:31:10
【问题描述】:
我无法获得解决此问题所需的正则表达式,因此请向 SO 向导寻求帮助!
给定:
LOCUS NODE_96_length_17326_cov_8.76428_ID_1>17327 bp DNA linear
LOCUS NODE_97_length_17208_cov_6.56803_ID_1>17208 bp DNA linear
LOCUS NODE_98_length_17111_cov_6.60638_ID_1>17111 bp DNA linear
LOCUS NODE_99_length_17092_cov_6.7682_ID_19717092 bp DNA linear
LOCUS NODE_9_length_59921_cov_8.04963_ID_1759921 bp DNA linear
我需要替换NODE 和同一字符串末尾的数字序列之间的字符串。数字前面的字符(例如,在第 1 行中,17327)可以显示为 > 或 _。所以基本上我需要替换从NODE 到最后一个> 或_ 的所有内容,或者匹配到一个未知长度的多位整数。
目前为止我做过的最好的事情是:
sed 's/\(NODE.*\)\(>|_\)/newstring/'
但我知道这行不通。
只是为了清楚说明,这将是所需的输出。
LOCUS newstring 17327 bp DNA linear
LOCUS newstring 17208 bp DNA linear
LOCUS newstring 17111 bp DNA linear
LOCUS newstring 19717092 bp DNA linear
LOCUS newstring 1759921 bp DNA linear
【问题讨论】: