免费注册 查看新帖 |

Chinaunix

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

请教一个问题:在文件中找到需要的内容之后退出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-13 16:41 |只看该作者 |倒序浏览
要在几个文件里面找到一些需要的信息
比如
  1. sed -n -e '/abc/p' file*
复制代码


已经知道包含abc的纪录只有2条,如果使用上面的方法,需要查找所有的file*文件里面的所有记录

各位有什么办法,找到需要的记录之后就退出程序,这样在很大的文件里面找东西的时候效率会好一点
sed有个参数q,awk有个寒暑exit,但是只有一条记录的时候可以,但是不会写有2条记录的,
还可以扩展到需要找到第N条记录的时候退出,请大家执教。

谢谢大家了!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-12-13 16:45 |只看该作者
你的意思是不是假如有10个匹配,那么要求找到第五个(假如)就退出

论坛徽章:
0
3 [报告]
发表于 2005-12-13 16:47 |只看该作者
原帖由 寂寞烈火 于 2005-12-13 16:45 发表
你的意思是不是假如有10个匹配,那么要求找到第五个(假如)就退出



加入里面有5个匹配,就只需要找到5个之后退出,一般的方法是不是找到第五个了,还会继续向后找

这样如果第一个文件里面就有所有的记录了,那么找后面的几个文件就没用的了
wayy2008 该用户已被删除
4 [报告]
发表于 2005-12-13 16:53 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-12-13 17:06 |只看该作者
use awk:

  1. awk '/patten/{n++;print;if(n==5)exit}' urfile
复制代码
wayy2008 该用户已被删除
6 [报告]
发表于 2005-12-13 17:06 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
wayy2008 该用户已被删除
7 [报告]
发表于 2005-12-13 17:07 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2005-12-13 17:09 |只看该作者
原帖由 wayy2008 于 2005-12-13 16:53 发表

楼主应该就是这个意思,也想学习一下。


这个同样也是个问题。也想知道这个的解决方法


现在有2个问题了,在N个文件里面有10条我们需要的记录
1、找到第5条的时候立即退出
2、找到第10条的时候立即退出,不再去其它的文件里面找

论坛徽章:
0
9 [报告]
发表于 2005-12-13 18:44 |只看该作者
原帖由 寂寞烈火 于 2005-12-13 17:06 发表
use awk:

  1. awk '/patten/{n++;print;if(n==5)exit}' urfile
复制代码


就是这个方法!
效果很明显:
  1. real    0m20.446s
  2. user    0m19.976s
  3. sys     0m0.442s
复制代码



  1. real    0m3.570s
  2. user    0m3.495s
  3. sys     0m0.072s
复制代码


我知道我开始的时候为什么错了,n==5写成了n=5

论坛徽章:
0
10 [报告]
发表于 2005-12-13 19:33 |只看该作者

  1. CODE=abc
  2. FILE=/path/file[1234]
  3. ssh usr@192.168.0.2 awk '/'"$CODE"'/{n++;print;if(n==2)exit}' $FILE


复制代码


在sh -x script.sh的时候出错,


  1. bash: -c: line 1: syntax error near unexpected token `exit'
  2. bash: -c: line 1: `awk /abc/{n++;print;if(n==2) exit;} /path/file[1234]'
复制代码


在本地执行就没问题
为什么呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP