LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1904|回复: 3

各位高手,如何使用grep/awk/sed提取日志文件的多行记录?谢谢!!!

[复制链接]
发表于 2004-8-20 13:02:17 | 显示全部楼层 |阅读模式
各位高手,如何使用grep/awk/sed提取日志文件的多行记录?谢谢!!!

这里有1个日志文件,格式如下:

...

dsgasdfsf  AAAAAAAAAA sfsadfsfds  asdfadsfsdf
sdfsaf sdfasdfaf sfsdf  BBBBBBBBBBB dfgdfgsgfdgdf
CCCCCCCCCCC sfsadfasd sadfasdf sdafasf rhttrh
ewrwe bwerfwe tyjth rty rtyhrth rthyrt

dsgasdfsf  AAAAAAAAAA sfsadfsfds  asdfadsfsdf
sdfsaf sdfasdfaf sfsdf  BBBBBBBBBBB dfgdfgsgfdgdf
CCCCCCCCCCC sfsadfasd sadfasdf sdafasf rhttrh
ewrwe bwerfwe tyjth rty rtyhrth rthyrt

dsgasdfsf  AAAAAAAAAA sfsadfsfds  asdfadsfsdf
sdfsaf sdfasdfaf sfsdf  BBBBBBBBBBB dfgdfgsgfdgdf
CCCCCCCCCCC sfsadfasd sadfasdf sdafasf rhttrh
ewrwe bwerfwe tyjth rty rtyhrth rthyrt

...


以下是3个命令,生成3个文件。如果
ABC=`cat /log.txt |grep -w "AAAAAAAAAA" | awk -F" " '{print $5}'`
echo "$ABC" >log1.txt
ABC2=`cat /log.txt |grep -w "BBBBBBBBBBB" | awk -F" " '{print $5}'`
echo "$ABC2" >log2.txt
ABC3=`cat /log.txt |grep -w "CCCCCCCCCCC" | awk -F" " '{print $5}'`
echo "$ABC3" >log3.txt

如果我想用1行命令完成提取AAAAAAAAAA、BBBBBBBBBBB、CCCCCCCCCCC所在行 特定字符(假定第5个区域)按顺序 生成1个

文件,该怎么办呢?

请各位高手指教!
发表于 2004-8-20 16:37:08 | 显示全部楼层

  1. awk '/([^0-9a-zA-Z_]|^)(AAAAAAAAAA|BBBBBBBBBBB|CCCCCCCCCCC)([^0-9a-zA-Z]|$)/{print $5}' log.txt
复制代码
发表于 2004-8-20 22:46:08 | 显示全部楼层
  1. awk '/([A])+/||/([b])+/||/([C])+/{print $5}' file
复制代码
 楼主| 发表于 2004-8-21 01:19:14 | 显示全部楼层

多谢各位,有这么多解法!祝各位愉快,论坛越办越好!

多谢各位,有这么多解法!
祝各位愉快,论坛越办越好!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表