用正则表达式替换多个字符

时间:2012-06-26 14:29:06

标签: regex replace sed

有很多方法可以用一个字符替换多个字符。

s/a\{100\}/a/

有没有办法替换它反之亦然(一个a有一百a)而没有输入a 100次?

PS。我在sed中使用了正则表达式。

2 个答案:

答案 0 :(得分:4)

怎么样:

sed ':x;/a\{100\}/b;s/a/aa/;tx'

答案 1 :(得分:1)

并不像你想的那样简洁,但你可以这样做:

sed -e 's/a/aaaaaaaaaa/' -e 's/\(aaaaaaaaaa\)/\1\1\1\1\1\1\1\1\1\1/'

基本上将原始a替换为10个,然后将10个序列替换为10个副本。对于100以外的数字,显然,你的因素不同。