免费注册 查看新帖 |

Chinaunix

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

sed替换匹配问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-24 23:26 |只看该作者 |倒序浏览
本帖最后由 kingdomkiss 于 2011-03-25 09:24 编辑

文件内容为:
name="something" type="something" ip="1234234" user="user1" password="password" name="something"
name="something" type="something" ip="1234244" username="user2" password="password" other="something"
  1. sed 's/\(username=\)\|\(user=\)".*"\(\s*pa\)/(\2)(\1)("'$USER'")111(\3)/' user
复制代码
得到如下:
name="something" type="something" ip="1234234" (user=)()("king")111(pa)ssword" name="something"
name="something" type="something" ip="1234244" ()(username=)("king")111()"user2" password="password" other="something"
两行的内容格式基本一样,从得到第一行的结果看\(\s*pa\)匹配到了pa,第二行为什么都没匹配到,是空的呢? 有没有人提示下

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2011-03-25 03:24 |只看该作者
try:
  1. sed 's/\(username=\|user=\)".*"\(\s*pass\)/(\1)("'$USER'")111(\2)/'
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-03-25 09:34 |只看该作者
回复 2# yinyuemi

its works.第一次写这种带或匹配的,忘了当初为什么把他们分开写了.现在仔细分析下确实是大不一样.
\(username=\)  \| \(user=\)".*"\(\s*pa\) 是这两个或匹配的.

论坛徽章:
0
4 [报告]
发表于 2011-03-25 16:06 |只看该作者
回复 1# kingdomkiss


    echo 'name="something" type="something" ip="1234234" user="user1" password="password" name="something"
name="something" type="something" ip="1234244" username="user2" password="password" other="something" '|sed 's/\(user=\|username=\).* \(pa\)\(.*\)/(\1)("$user")111(\2)\3/g'
name="something" type="something" ip="1234234" (user=)(king)111(pa)ssword="password" name="something"
name="something" type="something" ip="1234244" (username=)(king)111(pa)ssword="password" other="something"
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP