如何使用grep 等命令快速的在日志中找到自己需要的内容
虽然使用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 '' test.txt
这表示我们需要从test.txt这个文件中查找'123'这个字符串。同时将返回匹配到的整行数据。
那么通常我的匹配需求里面,动不动就是要把某一段数据拿出来。例如
--26T20::09.012934+: ERROR ip[] /logistics/[-]: {"tid":"20160425-177561416","company_name":"其他","out_sid":"123124123C16042600320"} -------> 该订单不允许设置物流:
--26T21::22.172071+: ERROR ip[] /logistics/[-]: {"tid":"20160425-177560652","company_name":"其他","out_sid":"1231231C16042504184"} -------> 该订单不允许设置物流:
--26T21::24.293799+: ERROR ip[] /logistics/[-]: {"tid":"20160425-177560652","company_name":"其他","out_sid":"13123C16042504184"} -------> 该订单不允许设置物流:
--26T21::42.676001+: ERROR ip[] /logistics/[-]: {"tid":"20160417-177400674","company_name":"其他","out_sid":"1231C16041702542"} -------> 该订单不允许设置物流:
--26T21::44.528692+: ERROR ip[] /logistics/[-]: {"tid":"20160417-177400674","company_name":"其他","out_sid":"1221C16041702542"} -------> 该订单不允许设置物流:
我只需要得到里面tid后面的一长串订单号数据。就需要使用到前面 介绍到的-o 这个option。这个option的作用是只会将匹配到的部分返回给我们
grep '/logistics/123' err.log- | grep -o '\"2016.\{14\}'
这里我先抓到符合条件的缩小了范围,然后使用管道继续抓去更精确的数据。利用这个方法我们可以逐渐使用管道缩小抓取的范围。如果你觉得一次性拼一个正则表达式有点难度,那么就利用管道符逐渐缩小范围,直到抓取到想要的数据。 例如我这里还想要计算抓到的条数可以用两种选择
grep -c '/logistics/send' err.log- | grep -o '\"2016.\{14\}'
grep '/logistics/send' err.log- | grep -o '\"2016.\{14\}' | wc -l
一个是使用grep自带参数。第二个是直接利用管道符然后用wc -l来计算有多少行,非常灵活。
还有更多的灵活用法,可以多用用自然就熟悉该怎么写了。
如何使用grep 等命令快速的在日志中找到自己需要的内容的更多相关文章
- linux 如何快速的查找日志中你所要查找的信息
在工作中我总会通过日志来查找相关问题,但有时候日志太多有不知道又不知道日志什么时候打印的,这时我们可以通过一下方法来查找: 1.把目录跳到你日志文件存放的地方 2.grep 关键字 * 例如 ...
- windows类似grep的命令——findstr
windows类似grep的命令——findstr 使用Chrome发现访问google总是向香港那边跳转,估计配置文件中google网站映射的地址是www.google.com.hk,便想着改配 ...
- linux find grep 查找命令
原文:fhqdddddd.blog.163.com/blog/static/186991542012417105729415/ find 1.作用 find命令的作用是在目录中搜索文件,它的使用权限是 ...
- Linux下的grep搜索命令详解(二)
grep与正规表达式 字符类 字符类的搜索:如果我想要搜寻 test 或 tast 这两个单词时,可以发现到,其实她们有共通的 't?st' 存在-这个时候,我可以这样来搜寻: [root@www ...
- grep -v grep 代表在查询的最终结果中去掉grep命令本身
grep -v grep 代表在查询的最终结果中去掉grep命令本身
- 【前端】一句命令快速合并压缩 JS、CSS
引用自:一句命令快速合并 JS.CSS 在项目开发环境下,我们会把 JS 代码尽可能模块化,方便管理和修改,这就避免不了会出现一个项目自身 JS 文件数量达到10个或者更多. 而项目上线后,会要求将所 ...
- Git 命令快速浏览
Git 命令快速浏览 创建 Git 可管理的仓库 git init 查看当前仓库的状态 git status 添加到仓库,实际上是添加到暂存区 git add [-A | --all] git add ...
- Linux grep/egrep命令详解
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 grep搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2. grep的规则表达式( ...
- linux grep命令(linux在文件中搜索内容)
转自:https://www.cnblogs.com/end/archive/2012/02/21/2360965.html linux grep命令 1.作用Linux系统中grep命令是一种强大的 ...
随机推荐
- nginx反向代理与Real-IP和X-Forwarded-For.txt
本文作者张开涛.为保障<亿级流量网站架构核心技术>一书内容的连续性,有些需要读者了解的内容,或者书的补充和引申内容,会通过二维码嵌入的方式引导读者阅读学习.大家可以关注作者公众号“开涛的博 ...
- vue分页全选和单选操作
<!DOCTYPE html> <html> <head> <title>演示Vue</title> <style> ul,li ...
- docker 仓库搭建
阿里云服务器: 127.0.0.1(客户端) 127.0.0.2(私有服务器) 127.0.0.2作为私有仓库使用 1.下载镜像 [root@insure ~]# docker pull regist ...
- 查看电脑本机的ip地址
第一步:打开cmd 第二步:输入:ipconfig,回车 第三步:找到无线局域网适配器下的IPv4地址,那就是本机的ip地址
- Zephyr的Time、Timer、sleep
正如Linux下一样,关于时间的系统函数可以分为三类:时间值.睡眠一段时间以及延迟执行. 在Zephyr上对应是什么样子呢?带着这个疑问,去了解一下这些函数. 以及他们与suspend之间的关系? 是 ...
- MongoDB的数据类型介绍
参考MongoDB官网:https://docs.mongodb.com/manual/reference/bson-types/ MongoDB文档存储是使用BSON类型,BSON(BSON sho ...
- (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
@翻译:huangyongye 原文链接: Understanding LSTM Networks 前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LST ...
- python中和生成器协程相关yield from之最详最强解释,一看就懂(二)
一. 从列表中yield 语法形式:yield from <可迭代的对象实例> python中的列表是可迭代的, 如果想构造一个生成器逐一产生list中元素,按之前的yield语法,是在 ...
- SA的一个辣鸡trick
基础板子 namespace SA{ int x[400010],y[400010],SA[400010],rk[400010],ht[400010],t[400010]; int st[19][40 ...
- Daily Scrumming* 2015.12.20(Day 12)
一.团队scrum meeting照片 二.成员工作总结 姓名 任务ID 迁入记录 江昊 任务1090 https://github.com/buaaclubs-team/temp-front/com ...