用Sed找到正确的正则表达式

时间:2013-03-19 16:09:02

标签: regex sed

我正在尝试使用TSV替换sed文件中的某些文字,但我仍然坚持使用正则表达式。

以下是一行示例:

0   NA  intron (NR_045393, intron 2 of 2)   intron (NR_045393, intron 2 of 2)   1089 

我想将intron (NR_045393, intron 2 of 2)替换为intron,以获取:

0   NA  intron  intron  1089 

匹配的模式可以是内联(NM_001081221, intron 1 of 20)intron (NM_144536, intron 5 of 15)

我尝试更换模式如下,但我正在努力做到这一点

sed -i 's/intron.(\([a-zA-Z0-9\/_]\+\)\/,\s[a-zA-Z]\s[0-9]\s[a-z]\s[0-9])/intron/g' test 

2 个答案:

答案 0 :(得分:1)

如果您只想删除括号中的任何内容,请使用

sed -e 's/([^)]*)//g'

要删除左括号前面的空格,请将其添加到正则表达式:

sed -e 's/ ([^)]*)//g'

答案 1 :(得分:0)

试试这个:

sed -E -i 's/intron \([A-Z0-9_]+, intron [0-9]+ of [0-9]+\)/intron/g' test