免费注册 查看新帖 |

Chinaunix

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

求个SHELL匹配两个关键字之间的内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-11 23:20 |只看该作者 |倒序浏览
例文:

test.txt


234;23k232lk34kjlkjmmasdmfpeoric2034lkslkd323id=abcd\3mfk3kk\s\dfalkfkllk3$#UN$MMM@N!NN#xfadksfasjkds\\code=2343m1231n23\\id=1234\234l2k34j2l3slkfsdf\23\4ak\\ucode=12341n12123\\id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=1231231243jdf\\


结果:

id=abcd\3mfk3kk\s\dfalkfkllk3$#UN$MMM@N!NN#xfadksfasjkds\\code=
id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=




我的需求:

匹配出"id=abcd" 与"code=" 之间的内容,  
全文匹配,从第一个id=abcd到下个code之间的内容。接下来第2个id=abcd到下个code的内容。。

[ 本帖最后由 zerohly 于 2009-3-11 23:24 编辑 ]

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2009-03-11 23:23 |只看该作者

回复 #1 zerohly 的帖子

sed 's/.*id=abcd\(.*\)code=.*/id=abcd\1code=/g' ufile

[ 本帖最后由 liaosnet 于 2009-3-11 23:25 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-03-11 23:29 |只看该作者

回复 #2 liaosnet 的帖子

[root@localhost ~]# cat 1.txt
234;23k232lk34kjlkjmmasdmfpeoric2034lkslkd323id=abcd\3mfk3kk\s\dfalkfkllk3$#UN$MMM@N!NN#xfadksfasjkds\\code=2343m1231n23\\id=1234\234l2k34j2l3slkfsdf\23\4ak\\ucode=12341n12123\\id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=1231231243jdf\\

[root@localhost ~]# sed 's/.*id=abcd\(.*\)code=.*/id=abcd\1code=/g' 1.txt
id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=

仅能匹配出最后一次。。。

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2009-03-11 23:37 |只看该作者

回复 #3 zerohly 的帖子

你这里只有一行吧...
$ more 1.txt
234;23k232lk34kjlkjmmasdmfpeoric2034lkslkd323id=abcd\3mfk3kk\s\dfalkfkllk3$#UN$MMM@N!NN#xfadksfasjkds\\code=2343m1231n23\\id=1234
\234l2k34j2l3slkfsdf\23\4ak\\ucode=12341n12123\\id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=1231231243jdf\\
$ sed 's/.*id=abcd\(.*\)code=.*/id=abcd\1code=/g' 1.txt
id=abcd\3mfk3kk\s\dfalkfkllk3$#UN$MMM@N!NN#xfadksfasjkds\\code=
id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=

[ 本帖最后由 liaosnet 于 2009-3-11 23:41 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-03-11 23:39 |只看该作者

回复 #4 liaosnet 的帖子

全文只有一行,,但是可以匹配的有两段。。。
我用红色标出来了。。。

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2009-03-11 23:43 |只看该作者

回复 #5 zerohly 的帖子

哦..只有两段的话....
sed 's/.*id=abcd\(.*\)code=.*id=abcd\(.*\)code=.*/id=abcd\1code=\
id=abcd\2code=/g' 1.txt

[ 本帖最后由 liaosnet 于 2009-3-11 23:46 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-03-11 23:50 |只看该作者

回复 #4 liaosnet 的帖子

奇怪,我这也不行
[rockfall@tmp]$echo 'id=abcd\3mfk3kk\s\dfalkfkllk3$#UN$MMM@N!NN#xfadksfasjkds\\code=2343m1231n23\\id=1234\234l2k34j2l3slkfsdf\23\4ak\\ucode=12341n12123\\id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=1231231243jdf\\' | sed 's/.*id=abcd\(.*\)code=.*/id=abcd\1code=/g'
id=abcd\234ksadk2kd39z123ii231n3n13c393\\code=
[rockfall@tmp]$

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
8 [报告]
发表于 2009-03-11 23:52 |只看该作者

回复 #7 haimming 的帖子

..........等明天吧~~我也是新手..水平有限......

[ 本帖最后由 liaosnet 于 2009-3-12 00:00 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-03-11 23:55 |只看该作者
原帖由 zerohly 于 2009-3-11 23:20 发表
例文:

test.txt


234;23k232lk34kjlkjmmasdmfpeoric2034lkslkd323id=abcd\3mfk3kk\s\dfalkfkllk3$#UN$MMM@N!NN#xfadksfasjkds\\code=2343m1231n23\\id=1234\234l2k34j2l3slkfsdf\23\4ak\\ucode=12341n1 ...

  1. awk 'BEGIN{RS="code="} /.*id=abcd.*/ {start=match($0,/id=abcd/); print substr($0,start)"code="}' test.txt
复制代码

论坛徽章:
0
10 [报告]
发表于 2009-03-12 00:10 |只看该作者

回复 #8 liaosnet 的帖子

大师过谦了,这个是有些不好搞
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP