linux grep命令详解。(如何实现在亿万日志中快速找到自己想要的日志等操作)

 写这个也是这次出差,处理线上问题时碰到的一个问题。 以前用的liunx命令面对海量内容的文件时根本找不到自己的想要的日志

 好了,小明不瞎扯。下面一一指出

情况一: 当面对一个日志很久很大时,如何快速找到自己想要的日志

处理一:grep 'xxxx' /xxx/xxx/yyyy   xxxx指你要查找的内容      /xxx/xxx/yyyy 这是你的日志文件(绝对路径哦)

这样可以很快的定位到该台服务器上有没有相关的日志信息

但是这个有个缺陷,你会发现两个问题

1查出的日志信息只有一小段,不是完整的

2不是显示所有匹配的信息。只显示当前窗口能方法的条数。比如你查找的内容文件中会出现100次,但是这种查询方法只会显示10或几条 也就是一个窗口的能放下的条数。

处理上面两种情况

1的情况处理,进入文件的目录下 使用more命令 

more xxxx  xxx指文件名

然后 按/  再输入你要找的内容关键字。这样可看到完整日志

2的情况处理  使用以下命令

grep  -C4 'xxxx' /xxx/xxx/yyyy   没错就是加个 -C4 。 这个会将能匹配的信息都显示处理 当然也是不完整的日志信息。

情况二:如果我要查找一段时间内某用户的日志怎么找呢。

别慌,这是gerp其实提供支持正则表达式的。

比如我要查找  2018-09-09 14:20到2018-09-09 14:25分钟这间 xxx用户的日志 该怎么处理呢

cat  /data/appLogs/yzfca-scs-inf.log.2018-08-23| grep -E  '2018-08-23 18:2[0-5]' |grep  'xxxx' 

-E标识支持正则表达式

常用的正则表达标识

xxx] xxxx指匹配指定范围
?任意字符0个或多个
{xxxx}xxx指出现次数
()分组
|或
^非
\: 忽略正则表达式中特殊字符的原有含义
. (小数点):代表“一定有一个任意字符”的意思;
* (星星号):代表“重复前一个字符, 0 到无穷多次”的意思,为组合形态

情况三: 如果你希望显示行怎么办,以及你会发现你查找的内容还要肉眼去找,不是高亮的,不区分大小写

grep -n -i -color -C4 'xxxx' /xxx/xxx/yyyy 

加个-n即可  标识显示行

使用-i参数忽略大小写

–color高亮显示匹配结果

反正使用好grep命令是完全可以满足你查找内容的需求。即使文件再大也,都不是问题。

上述只是描述了查找日志(也是工作中用的最多的情况),它也可和其他命令一起配合使用也是很好

比如杀死程序。

第一步找到程序

ps aux|grep xxx   xxx指程序相关的关键字

第二步 取其线程信息 kill -9 xxx   xxx指线程

就这些没别的 。希望小明没写错,写错请告诉我,我学习学习 大神不要惜字如金  欢迎评论纠错。

你可能感兴趣的:(linux grep命令详解。(如何实现在亿万日志中快速找到自己想要的日志等操作))