博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用grep 等命令快速的在日志中找到自己需要的内容
阅读量:5299 次
发布时间:2019-06-14

本文共 1922 字,大约阅读时间需要 6 分钟。

虽然使用linux也有好几年了,但是服务器端开发的活儿正经来算才干不到一年。

一直没有需求和机会会去花大量的时间排查日志啥的,直到我摊上了大事t t,写的代码在线上出了bug需要排查问题。

 

grep可能是这两天我使用得最多的命令了,下面是grep的一些基本用法。

grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名参数说明:-a:将二进制文档以文本方式处理-c:显示匹配次数-i:忽略大小写差异-n:在行首显示行号-A:After的意思,显示匹配字符串后n行的数据-B:before的意思,显示匹配字符串前n行的数据-v:显示没有匹配行-A:After的意思,显示匹配部分之后n行-B:before的意思,显示匹配部分之前n行--color:以特定颜色高亮显示匹配关键字 一般我们很容易写出这样的语句。
grep '123' test.txt

这表示我们需要从test.txt这个文件中查找'123'这个字符串。同时将返回匹配到的整行数据。

 

那么通常我的匹配需求里面,动不动就是要把某一段数据拿出来。例如

2016-04-26T20:13:09.012934+08:00 ERROR ip[107309309] /logistics/123[-]: {
"tid":"20160425-177561416","company_name":"其他","out_sid":"123124123C16042600320"} -------> 2001 该订单不允许设置物流:2016-04-26T21:08:22.172071+08:00 ERROR ip[107309309] /logistics/123[-]: {
"tid":"20160425-177560652","company_name":"其他","out_sid":"1231231C16042504184"} -------> 2001 该订单不允许设置物流:2016-04-26T21:08:24.293799+08:00 ERROR ip[107309309] /logistics/123[-]: {
"tid":"20160425-177560652","company_name":"其他","out_sid":"13123C16042504184"} -------> 2001 该订单不允许设置物流:2016-04-26T21:48:42.676001+08:00 ERROR ip[107309309] /logistics/123[-]: {
"tid":"20160417-177400674","company_name":"其他","out_sid":"1231C16041702542"} -------> 2001 该订单不允许设置物流:2016-04-26T21:48:44.528692+08:00 ERROR ip[107309309] /logistics/123[-]: {
"tid":"20160417-177400674","company_name":"其他","out_sid":"1221C16041702542"} -------> 2001 该订单不允许设置物流:

我只需要得到里面tid后面的一长串订单号数据。就需要使用到前面 介绍到的-o 这个option。这个option的作用是只会将匹配到的部分返回给我们

grep '/logistics/123' err.log-20160427 | grep -o '\"2016.\{14\}'

这里我先抓到符合条件的缩小了范围,然后使用管道继续抓去更精确的数据。利用这个方法我们可以逐渐使用管道缩小抓取的范围。如果你觉得一次性拼一个正则表达式有点难度,那么就利用管道符逐渐缩小范围,直到抓取到想要的数据。 例如我这里还想要计算抓到的条数可以用两种选择

grep -c '/logistics/send' err.log-20160427 | grep -o '\"2016.\{14\}'grep '/logistics/send' err.log-20160427 | grep -o '\"2016.\{14\}' | wc -l

一个是使用grep自带参数。第二个是直接利用管道符然后用wc -l来计算有多少行,非常灵活。

 

还有更多的灵活用法,可以多用用自然就熟悉该怎么写了。

 

转载于:https://www.cnblogs.com/piperck/p/5440516.html

你可能感兴趣的文章
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>