免费注册 查看新帖 |

Chinaunix

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

sed 匹配问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-08 18:50 |只看该作者 |倒序浏览
我有个表类似这样
A323111
B32312312
REV_END
REV_CODE="RNDP6000-V1:01"
A3232
B323232311
REV_END
REV_CODE="RNDP6000-V1:02"
A32132
B3213123
.
.
REV_END
REV_CODE="RNDP6000-V1:03"
A32132
B3213123
.
.
REV_END

我现在想用把REV_CODE="RNDP6000-V1:03" 行 和 REV_END之间的保留
用 sed -e "1,/REV_CODE=\"${REV_CODE}/ d" -e "/REV_END/,$ d" file  只匹配到第一个REV_CODE="RNDP6000-V1:01"  ,这里REV_CODE="RNDP6000-V1" 固定值。
有什么办法只用sed完成? 难道还要grep,sort把 RNDP6000-V1:03 找出来??

论坛徽章:
0
2 [报告]
发表于 2010-06-08 18:53 |只看该作者

  1. sed -n '/REV_CODE="RNDP6000-V1:03"/,/REV_END/p'
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-06-08 18:55 |只看该作者
感谢2楼不过这不是我想要的 我想的是 sed -n '/REV_CODE="RNDP6000"/,/REV_END/p' 这个怎么匹配到 下面的RNDP6000-V1:03 而不是 RNDP6000-V1:01

论坛徽章:
0
4 [报告]
发表于 2010-06-08 18:58 |只看该作者
没太明白。
你想匹配的既然是v1:03,那把这个加入regex不就可以了?

论坛徽章:
0
5 [报告]
发表于 2010-06-08 18:59 |只看该作者
我是可以用grep 和sort 把 用REV_CODE="RNDP6000-V1" 把 RNDP6000-V1:03最新的找出来赋给REV_CODE, 但想问问sed能一句话 匹配出来??

论坛徽章:
0
6 [报告]
发表于 2010-06-08 19:07 |只看该作者
就是说,你是想获取最后一段,但并不知道相应具体的REV_CODE值是吗?

论坛徽章:
0
7 [报告]
发表于 2010-06-08 19:09 |只看该作者
回复 5# mjj911
  1. 兄弟,自己动手改改嘛,色狼哥只是给你个思路
复制代码

论坛徽章:
0
8 [报告]
发表于 2010-06-08 19:11 |只看该作者
如果不知道具体的匹配值,只是想获取最后一段,又必须用sed:

  1. sed -n '/REV_CODE="RNDP6000/{h;:a;n;H;/REV_END/!ba};${g;p}' URFILE
复制代码

论坛徽章:
0
9 [报告]
发表于 2010-06-08 19:12 |只看该作者
是知道一部分 REV_CODE="RNDP6000-V1“ 但要找这个最新的 也就是 REV_CODE="RNDP6000-V1:03“ 我想匹配的是 REV_CODE="RNDP6000-V1:03“ 和REV_END 的内容 而不是sed -e "1,/REV_CODE=\"${REV_CODE}/ d" -e "/REV_END/,$ d" file  只能得到REV_CODE="RNDP6000-V1:01“ 和REV_END 的内容

论坛徽章:
0
10 [报告]
发表于 2010-06-08 19:23 |只看该作者
8楼代码可以解决你这个问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP