免费注册 查看新帖 |

Chinaunix

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

关于一个grep的问题,请大虾帮忙!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-19 10:39 |只看该作者 |正序浏览
“grep 条件 某文件” 可以得出以下记录:

Dec 16 12:19:23 abcde aaaaaaaa[14213]: [ID 801593 xxxx.info] mBG4JJq14207(这个是会变得)

然后取红色那些字符再grep相同的文件得出其他信息,如何可以直接得出2种信息吖??????

请大家帮帮忙,thx!!!!


[ 本帖最后由 fox_hzl 于 2008-12-19 11:17 编辑 ]

论坛徽章:
0
28 [报告]
发表于 2008-12-22 09:27 |只看该作者
原帖由 walkerxk 于 2008-12-19 18:36 发表
第一次grep提取结果只有一个值吧:
grep $(grep 123456 /fox/log|cut -d\  -f 9) /fox/log
看看这样会不会快点。或者你可以加上--line-buffered参数。


/fox/log*是表示多个文件的

grep $(grep 123456 /fox/log*|cut -d\  -f 9) /fox/log*

grep: can't open mAGDCWu01860:
grep: can't open mAGDCXu01864:
grep: can't open mAGDCYu01868:
grep: can't open mAF076u11121:
grep: can't open m9T858u04613:

`log*ec 16 12:19:23 abcde aaaaaaaa[14213]:  mBG4JJq14207; aa=123456`

看来是要写shell了。

论坛徽章:
0
27 [报告]
发表于 2008-12-19 19:07 |只看该作者
还是不太清楚lz的意思,
莫非是想使用grep -F?
那也是要两步完成呀……

论坛徽章:
0
26 [报告]
发表于 2008-12-19 18:36 |只看该作者
第一次grep提取结果只有一个值吧:
grep $(grep 123456 /fox/log|cut -d\  -f 9) /fox/log
看看这样会不会快点。或者你可以加上--line-buffered参数。

论坛徽章:
0
25 [报告]
发表于 2008-12-19 18:02 |只看该作者
原帖由 welcome008 于 2008-12-19 17:53 发表



应该还是比较快的

虽然文件比较多,但是你取查找数据的话,也就grep快了



grep `grep 123456 /fox/log|awk '{print $9}'` /fox/log

这样可以直接取那个字符,会比较快,但文件比较多,还是觉得比较慢

论坛徽章:
0
24 [报告]
发表于 2008-12-19 17:53 |只看该作者
原帖由 fox_hzl 于 2008-12-19 17:43 发表



我是再多个log文件下提取的,这样好像会比较慢吧!!



应该还是比较快的

虽然文件比较多,但是你取查找数据的话,也就grep快了

论坛徽章:
0
23 [报告]
发表于 2008-12-19 17:43 |只看该作者
原帖由 HH106 于 2008-12-19 17:20 发表

整行的/fox/log都写全了吧?哥们,别又后面冒出个什么
grep `grep 123456 /fox/log|awk -F"[ ;]" '{NF=NF-2;print $NF}'` /fox/log



我是再多个log文件下提取的,这样好像会比较慢吧!!

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
22 [报告]
发表于 2008-12-19 17:20 |只看该作者
原帖由 fox_hzl 于 2008-12-19 17:04 发表


我是`grep 123456 /fox/log*`得出以下的东西的

`log*ec 16 12:19:23 abcde aaaaaaaa[14213]:  mBG4JJq14207; aa=123456`

红色是会变化的,然后再用`grep mBG4JJq14207 /fox/log*来提取其它相关的信 ...

整行的/fox/log都写全了吧?哥们,别又后面冒出个什么
grep `grep 123456 /fox/log|awk -F"[ ;]" '{NF=NF-2;print $NF}'` /fox/log

论坛徽章:
0
21 [报告]
发表于 2008-12-19 17:04 |只看该作者
原帖由 我是DBA 于 2008-12-19 14:37 发表
能不能贴个完整的行?这样不好搞


我是`grep 123456 /fox/log*`得出以下的东西的

`log*ec 16 12:19:23 abcde aaaaaaaa[14213]: [ID 801593 xxxx.info] mBG4JJq14207; aa=123456`

红色是会变化的,然后再用`grep mBG4JJq14207 /fox/log*来提取其它相关的信息,想简化步骤和提高提取的速度,是否要写shell来处理的?

论坛徽章:
0
20 [报告]
发表于 2008-12-19 16:00 |只看该作者
原帖由 walkerxk 于 2008-12-19 14:32 发表
你到底怎么提取这个字符的,以空格为分割符,第N列行不?



我用"grep 条件 log*"提取这个字符,然后再用这个字符在相同的文件中提取与这个相匹配的信息,就是想以空格为分割符,这样是否要用shell来处理呢?

[ 本帖最后由 fox_hzl 于 2008-12-19 16:56 编辑 ]
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP