sed
[root@localhost ~]# cat test #显示test的内容
He love his love.
She like her like.
Dove love her like.
[root@localhost ~]# sed 's@\(l..e\)\.@\1r.@' test #在最后一个单词后面加r,注意第.
He love his lover. #前面要加转义字符\
She like her liker.
Dove love her liker.
请帮解释下 sed 's@\(l..e\)\.@\1r.@' test这句是怎么个意思?
是以什么做定界符呢?
[解决办法]
以@做定界符
[解决办法]
以@做定界符,sed的定界符可选。
\(l..e\) 匹配以l开头,以e结尾且中间有两个字符的单词。
\1 代表先前匹配到的\(l..e\) ,\1r就是\(l..e\)r
s@\(l..e\)\.@\1r.@ s表明替换,即将匹配到的1..e.替换成l..er. 最后一个.由于有转义符\,无特殊意义,就是匹配字符“.” 因些只会将love.替换成lover.
推荐你看本书,非常好
sed和awk程序设计(第二版)