Chinaunix
标题:
sed 今天发现一个奇怪的问题
[打印本页]
作者:
jack城
时间:
2010-03-03 10:44
标题:
sed 今天发现一个奇怪的问题
sed 版本:
NAME
sed - manual page for sed version 4.1.4
问题:
假设有个文件file1内容为
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><ServiceInf>
</Service>
</ServiceInf>
我想将最后一行的内容使用全字匹配来执行的,sed 's/\<\/ServiceInf\>/111111/g' file1
>sed 's/\<\/ServiceInf\>/111111/g' file1
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><ServiceInf>
</Service>
</ServiceInf>
但是结果,文件内容被替换,请各位大侠帮忙指导下^_^
作者:
iori809
时间:
2010-03-03 10:50
把你想要的结果弄出来好吗
作者:
blackold
时间:
2010-03-03 11:13
作者:
w3wu
时间:
2010-03-03 11:32
sed 's%\<\/ServiceInf\>%11111%g' file1
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><ServiceInf>
</Service>
11111
是要这结果吗?
作者:
Shell_HAT
时间:
2010-03-03 11:44
但是结果,文件内容被替换
你不就是希望替换么,现在它替换了,你还想咋地?
作者:
Shell_HAT
时间:
2010-03-03 11:46
想要这样?
$ sed 's/<\/ServiceInf>/111111/g' urfile
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><ServiceInf>
</Service>
111111
作者:
blackold
时间:
2010-03-03 11:49
你不就是希望替换么,现在它替换了,你还想咋地?
Shell_HAT 发表于 2010-03-03 11:44
作者:
jack城
时间:
2010-03-03 20:44
回复
5#
Shell_HAT
写错了,不好意思呀,我的意思是需要替换,但是实际是没有替换的
作者:
jack城
时间:
2010-03-03 20:46
回复
6#
Shell_HAT
是需要这样的结果,但是我执行的命令为什么替换不了呢?而是把原文件打印出来啦
作者:
iori809
时间:
2010-03-03 21:09
应该是你转义了 \<\>的原因。可能是版本的问题。我的就必须转义才能替换
你的可能不用转义就能
作者:
Shell_HAT
时间:
2010-03-03 21:13
回复
9#
jack城
我的命令跟你的命令不一样^_^
作者:
jack城
时间:
2010-03-04 08:55
回复
11#
Shell_HAT
果然是的 搞定了 不过这样还真是麻烦 写个脚本 在各个环境还不能通用
ocs104 [b4cbp11] :/home1/b4cbp11/service/app/servicefile 64 >sed 's/<\/ServiceInf>/1111/g' file1
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><ServiceInf>
</Service>
1111
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2