分页: 1 / 1

正则替换问题

发表于 : 2012-12-07 23:37
ulosggs
abab<blahblah>baba
怎么只对<>之间的内容进行替换 s/a/A
得到 abab<blAhblAh>baba

Re: 正则替换问题

发表于 : 2012-12-07 23:39
eexpress
vim还是bash,还是perl?

Re: 正则替换问题

发表于 : 2012-12-08 1:07
ulosggs
eexpress 写了:vim还是bash,还是perl?
sed

Re: 正则替换问题

发表于 : 2012-12-08 19:51
eexpress
sed 通常只对行进行地址定位,你这要进行2次匹配,取出并合并。

Re: 正则替换问题

发表于 : 2012-12-12 20:45
aerofox

代码: 全选

sed ':s;s/\(<[^a>]*\)a\([^>]*>\)/\1A\2/;t s'

Re: 正则替换问题

发表于 : 2012-12-12 21:15
aerofox
如果一行只存在一对尖括号,也可以上面两个方括号定义的字符范围换成“.”。

Re: 正则替换问题

发表于 : 2012-12-12 23:40
cao627

代码: 全选

: lable ;替换; t lable
: lable 设置标志lable
t lable 如果成功执行了替换 就转移到lable标志,如此循环执行替换。
学习!

Re: 正则替换问题

发表于 : 2012-12-23 19:38
ulosggs
aerofox 写了:

代码: 全选

sed ':s;s/\(<[^a>]*\)a\([^>]*>\)/\1A\2/;t s'
多谢!