如何摆脱连续的角色?

时间:2016-06-14 16:06:19

标签: regex string text sed

我有一个包含字符串a aa aaa aaaa的文本文件。我想将其缩减为a a a a。但是,使用sed -i 's/aa/a/g' filename会导致a a aa aa。如何将所有连续的角色合并为一个角色?

1 个答案:

答案 0 :(得分:3)

您需要搜索a,然后搜索a的{​​{3}}。搜索模式为aa*

$ echo "a aa aaa aaaa" | sed 's/aa*/a/g'
a a a a

使用any number的更复杂的正则表达式可用于匹配任意数量的group capturing

$ echo "a aa aaa aaaa bbbb cc" | sed 's/\(.\)\1*/\1/g'
a a a a b c