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