免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1921 | 回复: 7
打印 上一主题 下一主题

[文本处理] 问一个sed里面 转义的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-16 15:08 |只看该作者 |倒序浏览
在调试脚本的时候发现个问题,下面的2个语句执行的结果不一样
sed -i "/\<url\>/ c\<url>jdbcracle:thin$db_url</url>" file
sed -i "/<url>/ c\<url>jdbcracle:thin$db_url</url>" file

第一个语句把文件file里面的包括url的行都替换了,比如下面三行都会替换掉
<url>jdbcracle:thin10.163.211.237:1521rcl</url>
<ac-url-login>servlet/validate</ac-url-login>
<ac-url-modpwd>servlet/updatepwd</ac-url-modpwd>

第二个语句把文件file里面第一次找到的<url>替换了,比如只有下面这行会替换掉
<url>jdbcracle:thin10.163.211.237:1521rcl</url>

不知道为什么,求各位大神解释下,万分感谢

论坛徽章:
5
亥猪
日期:2013-10-15 13:41:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34申猴
日期:2013-10-28 10:55:45辰龙
日期:2013-10-31 13:29:29丑牛
日期:2014-02-14 11:25:54
2 [报告]
发表于 2012-11-16 15:39 |只看该作者
请编辑下帖子 统一放到 code 块里面把

论坛徽章:
0
3 [报告]
发表于 2012-11-16 15:50 |只看该作者
在调试脚本的时候发现个问题,下面的2个语句执行的结果不一样
sed -i "/\<url\>/ c\<url>jdbc:oracle:thin:@$db_url</url>" file
sed -i "/<url>/ c\<url>jdbc:oracle:thin:@$db_url</url>" file

第一个语句把文件file里面的包括url的行都替换了,比如下面三行都会替换掉
<url>jdbc:oracle:thin:@10.163.210.139:1521:orcl</url>
<ac-url-login>servlet/validate</ac-url-login>
<ac-url-modpwd>servlet/updatepwd</ac-url-modpwd>

第二个语句把文件file里面第一次找到的<url>替换了,比如只有下面这行会替换掉
<url>jdbc:oracle:thin:10.163.211.237:1521:orcl</url>

就是/\<url\>/ 和 /<url>/ 的区别

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
4 [报告]
发表于 2012-11-16 19:28 |只看该作者
因为\>是边界字符的意思。。。。。。

论坛徽章:
0
5 [报告]
发表于 2012-11-19 16:05 |只看该作者
dn833 发表于 2012-11-16 19:28
因为\>是边界字符的意思。。。。。。


能说的具体点吗?

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
6 [报告]
发表于 2012-11-19 18:27 |只看该作者
LZ你去google下正则表达式里“边界字符”是什么意思吧
我认为结果不一样就是因为\>是边界字符的问题。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2012-11-20 17:43 |只看该作者
本帖最后由 Shell_HAT 于 2012-11-20 17:44 编辑

回复 5# dWX56896


打开ABS,看看第47页。

Advanced Bash-Scripting Guide 3.9.1 中文版.pdf
http://bbs.chinaunix.net/thread-1610033-1-1.html

论坛徽章:
0
8 [报告]
发表于 2012-11-21 09:18 |只看该作者
谢谢大家,看懂了\<word\>是精确匹配,我误认为\<是转义<
原来在/address/这个里面<不需要转义
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP