免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 韧体
打印 上一主题 下一主题

请教,如何取得某关键字后特定行的行号?[已解决]谢谢大家!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-15 04:16 |显示全部楼层 |倒序浏览
例如

# cat test                                                                     
ded
aaaaa
sssss
111
dedwef
dwefref
aaaaa
ddddd
我想获取关键字“111”后出现的第一个aaaaa所处行的行号。
怎样才能实现呢?

环境为sh或csh

[ 本帖最后由 韧体 于 2009-1-15 10:03 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-01-15 09:33 |显示全部楼层
原帖由 ywlscpl 于 2009-1-15 09:22 发表
172# cat file
ded
aaaaa
sssss
1111
xxxx
xxxx
aaaaa
dddd
173# awk -v a=`grep -n 1111 file | awk -F ":" '{print $1}` 'NR>a&&$0~/aaaaa/{print NR;exit} file
7
174#

您这个我在csh上怎么无法执行呢?

论坛徽章:
0
3 [报告]
发表于 2009-01-15 09:40 |显示全部楼层
原帖由 我是DBA 于 2009-1-15 07:24 发表
sed -n -e '/111/,/aaaa/{=;}' ufile |tail  -1

这个我测试是可以的,可是不是很明白。能讲一下吗?

论坛徽章:
0
4 [报告]
发表于 2009-01-15 09:41 |显示全部楼层
原帖由 sunbw001 于 2009-1-15 08:08 发表
awk '$0~/111/{while(1){ getline b ; if(b~/aaaaa/){print NR;exit}}}' data

这个也是可以的

论坛徽章:
0
5 [报告]
发表于 2009-01-15 09:41 |显示全部楼层
原帖由 sunbw001 于 2009-1-15 08:12 发表
sed -n '/111/{:a;n;/aaaaa/{=;q};ba;}' test

这个在我这里无法执行。。

论坛徽章:
0
6 [报告]
发表于 2009-01-15 09:44 |显示全部楼层
原帖由 ubuntuer 于 2009-1-15 09:27 发表
sed -n '/111/{n;/aaa/=}' test

这个也无法执行。。。。
我环境是freebsd csh

论坛徽章:
0
7 [报告]
发表于 2009-01-15 09:53 |显示全部楼层
原帖由 lovegqin 于 2009-1-15 09:46 发表


哦,对,是我没看清LZ的要求

这样



sed -n '/111/,/\$/{/aaaaa/{=;q}}'

版主不知您是在哪种shell下的?bash吗?我的csh无法执行。。

论坛徽章:
0
8 [报告]
发表于 2009-01-15 10:01 |显示全部楼层
原帖由 lovegqin 于 2009-1-15 09:57 发表


[root@test]# sed -n '/111/,/\$/{/aaaaa/{=;q}}' a.txt
7
[root@test]# echo $0
-bash

虽然不能用但依然感谢!!!

论坛徽章:
0
9 [报告]
发表于 2009-01-15 10:02 |显示全部楼层
原帖由 luyi1983 于 2009-1-15 09:54 发表
按块取 并加上行号
用tail取最后一行的 就是/aaaaa/ 的行号

谢谢您的解释!!

论坛徽章:
0
10 [报告]
发表于 2009-01-15 10:02 |显示全部楼层
原帖由 ly5066113 于 2009-1-15 09:59 发表


这个肯定不是你想表达的。
你的想法应该是这样:
sed -n '/111/,${/aaaaa/{=;q}}'

但如果文件有多个111的话,这么写是有问题的,所以可以改进一下:

sed -n '/111/,/aaaaa/{/aaaaa/=}'


多谢您的热心!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP