查找文件中的指定内容
在多个文件中查找指定内容
Linux日志查看技巧
先必须了解两个最基本的命令:
场景1: 按行号查看,过滤出关键字附近的日志
因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.
- 首先:
cat -n test.log |grep Goods
得到关键日志的行号
- 得到
Goods
关键字所在的行号是102行. 此时如果我想查看Goods
关键字前10行和后10行的日志:
场景2:那么按日期怎么查呢? 通常我们非常需要查找指定时间端的日志
关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log
来确定日志中是否有该时间点,这个根据时间段查询日志是非常有用的命令.
如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:
- 使用
more
和less
命令, 如: cat -n test.log |grep Goods |more
这样就分页打印了,通过点击空格键翻页
- 使用
>xxx.txt
将其保存到文件中,到时可以拉下这个文件分析.如:
截取日志中指定内容
比如现在有以下日志内容,且暂定日志文件名为demo.txt:
需要截取orderSn值,可以使用如下命名:
使用cut 的“域”操作
根据"
分成不同的区域(-d "
),获取第4个区域的值( -f 4
),即订单号所在区域,得到订单号
uniq 去重
cut只能按照单个字符分割,如果要按照字符串分割,可以使用awk。下面就是按照elapsed来分割,然后取第二区域的字符 234
执行结果(订单号:23452345已经去重):
两个文件的交集,并集
- 取出两个文件的并集(重复的行只保留一份)
- 取出两个文件的交集(只留下同时存在于两个文件中的文件)
- 删除交集,留下其他的行
两个文件合并
一个文件在上,一个文件在下
一个文件去掉重复的行
反向截取