Chinaunix

标题: sed 处理特殊符号求教! [打印本页]

作者: opiopuiopoi    时间: 2010-03-08 21:53
标题: sed 处理特殊符号求教!
一文本格式如下,包括字符、单引号和括号

[root@localhost qq]# cat a.lst
name('alias');
phone('13579103349');
address('nanjing');

我想把phone('13579103349');替换成其他字符串比如abcdefg

[root@localhost qq]# echo phone\(\'13579103349\'\)\;
phone('13579103349');

[root@localhost qq]# sed -i 's/phone\(\'13579103349\'\)\;/abcdefg/g' a.lst
>

不行啊。
哪位老大帮忙下,谢谢啦。
作者: greendays    时间: 2010-03-08 22:03
回复 1# opiopuiopoi


    sed "/phone/s/[0-9]\+/abcefg/" urfile
作者: greendays    时间: 2010-03-08 22:08
回复 1# opiopuiopoi


     sed "/phone/s/^.\+$/abcefg/" urfile
不好意思,刚才看错了。
作者: samlumengjun    时间: 2010-03-08 22:29
sed -i -e s/phone\(\'13579103349\'\)/abcdefg/   a.lst
作者: opiopuiopoi    时间: 2010-03-08 22:39
本帖最后由 opiopuiopoi 于 2010-03-08 22:47 编辑

谢谢各位老大!!!

问题引申: 忽然想到能否用一个文本文件里的内容替换另外一个文本文件里的字符串呢?

比如文本文件a.lst的内容如下:

aaa
bbb
ccc

文本文件b.lst的内容如下:
xxx
yyy
zzz

那么我可否用b.lst的文件内容替换a.lst中的一个字符串,比如替换bbb,那么替换完成后的a.lst的内容为:
aaa
xxx
yyy
zzz
ccc

另外假如b.lst 中是含有很多特殊符号,是否会影响替换,我正在查资料做,唉,刚学sed,煎熬。
作者: wing731    时间: 2010-03-08 23:13
sed -e '/bbb/r b.lst' -e '/bbb/d' a.lst
作者: opiopuiopoi    时间: 2010-03-09 01:35
sed -e '/bbb/r b.lst' -e '/bbb/d' a.lst
wing731 发表于 2010-03-08 23:13



    哈,强! r 带文件。感谢!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2