2012-11-27 36 views
3

我想搜索以下正则表达式:“[ag] [ag] aag [acg]”并只将整个匹配转换为大写,而不是单个搜索a或g 。 我试过sed'y/[ag] [ag] aag [acg]/[AG] [AG] AAG [ACG] /',但是这会将个别搜索小写a或g转换为大写A或G.我想只有在找到与整个序列匹配的时候才会进行转换。使用linux将正则表达式匹配转换为大写

非常感谢帮助

回答

0

使用sed:

sed 's/\([ag][ag]aag[acg]\)/\U\1/' input 

它找到一个匹配[ag][ag]aag[acg]并捕获这场比赛\(...\)。然后它将它的高版本\U\1替换为匹配。

+0

我想,但它没有工作。它将比赛替换为UU。有另一种方式吗?非常感谢 –

0

@perreal的sed语句发布了作品。你确定你正确使用它吗?

testsed = agaaga

SED的/([AG] [AG] AAG [ACG])/ \ U \ 1 /'的内容testsed

AGAAGA

相关问题