# 查询关键词前后20行
cat cloud-storage-error.log | grep -n -C20 'exception'
grep -n '2020-09-23' cloud-storage-error.log|grep 'session ip change too many'
# n:行号
vim cloud-storage-error.log +n
# 检索日志,并显示该条日志的前后N(10)行记录:
cat 日志文件 | grep -n -B10 -A10 "关键字"
# 查询日志某关键字前后十行
grep -C 10 'Exception' xxx.log xxx为日志文件名称
#上面10行:
grep -B 10 'Exception' xxx.log
#下面10行:
grep -A 10 'Exception' xxx.log
# 查看某段时间内的关键字日志:sed -n '/起始时间/,/结束时间/p' 日志文件| grep ‘keyword’
sed -n '/2020-09-28 11:00:00/,/2020-09-28 14:03:00/p' cloud-storage-rest-debug.log | grep 'downloadAsWord'
# 使用more和less命令, 如:
cat -n test.log |grep "地形" |more
这样就分页打印了,通过点击空格键翻页
1、单个字符串进行查找:
1、查找当前目录文件名中的字符串: grep 字符串 文件名
2、查找某个文件中字符串,并输出行号:grep -n 字符串 文件名
3、查找当前目录(包含子目录)的字符串:grep -r 字符串
4、查找当前目录(包含子目录)的字符串,并输出行号:grep -rn 字符串
* :通配符,表示当前目录所有文件,也可以按照某种模式进行匹配,例如:
grep 字符串 *.txt 匹配所有文件后缀名为txt的字符串
-r :递归查找
-n :显示行号
-R :查找所有文件包含子目录
-i :忽略大小写
2、同时满足多个字符串查找:
grep 字符串1 文件名| grep 字符串2|grep 字符串3|grep …
3、满足多个关键字之一
grep -E “字符串1|字符串2|字符串3|” 文件名 或者
egrep “字符串1|字符串2|字符串3|” 文件名
tail -n 10 日志文件 查询日志尾部最后10行的日志;
tail -n +10 日志文件 查询10行之后的所有日志;
head -n 10 日志文件 查询日志文件中的头10行日志;
head -n -10 日志文件 查询日志文件除了最后10行的其他所有日志;
如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:
(1) 使用more和less命令, 如: cat -n test.log |grep "地形" |more
这样就分页打印了,通过点击空格键翻页
(2) 使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:cat -n test.log |grep "地形" >xxx.txt