使用linux将正则表达式匹配转换为大写

时间:2012-11-27 04:03:53

标签: regex linux uppercase

我想搜索以下正则表达式:“[ag] [ag] aag [acg]”并将整个匹配转换为大写但不是单独搜索a或g。 我试过sed'y / [ag] [ag] aag [acg] / [AG] [AG] AAG [ACG] /',但是将单个搜索小写字母a或g转换为大写字母A或G.我想只当它找到与整个序列匹配时进行转换。

非常感谢帮助

2 个答案:

答案 0 :(得分:0)

使用sed:

sed 's/\([ag][ag]aag[acg]\)/\U\1/' input
找到与[ag][ag]aag[acg]匹配的

并捕获此匹配\(...\)。然后它将匹配替换为大写的\U\1

答案 1 :(得分:0)

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

testsed = agaaga的内容

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

AGAAGA