Linux查看日志-grep
1.基本语法
grep [参数] 关键字 文件
-
参数选项:
-n 结果显示行号
-c 关键字匹配的行次数
-i 关键字忽略大小写
-v 反向选择
-e 后跟一个正则表达式
-m10 查找到10次就停止继续查找
-A10 显示关键字所在行和后10行
-B10 显示关键字所在行和前10行
-C10 显示关键字所在行和前后10行
--color=auto 关键字高亮显示(多个参数一起使用,color属性需要放最后,注意是两个短线) -
grep 可以跟正则,详细信息
grep -n t[ea]st info.log 查询test或者tast ([]一个字符)
grep -n [^g]oo 查询oo但不包含goo的行 (^在[]内表示反向选择)
grep -n [^a-z]oo 查询oo但不包含小写字母+oo的行 ([a-z] 一个小写字母)
grep -n [0-9] 查询包含数字的行 ([0-9] 一个数字)
grep -n ^the 查询the开头的行 (^不在[]内表示定位到行首)
grep -n [a-zA-Z] 查询不是以字母开头的行 (^反向和定位)
grep -n .$ 查询以.结尾的行 (\转义 $结尾)
grep -n ^$ 找出空白行 (^$ 空白行)
grep -n g..d 查询g??d的字符串的行(.表示一个)
grep -n ooo* 查询至少包含两个oo的行(* 表示重复前边一个字符0-n次)
grep -n goog 查询g开头g结尾且中间至少包含一个o的行
grep -n g.g 查询g开头g结尾且中间字符可有可无的行 (.*表示没有或有任意个字符)
grep -n o{2} 查询oo的行({2} 前边字符重复2次,{}转义)
2.多关键字grep
-
多条件或
grep -E '关键字1|关键字2|关键字3' info.log
匹配关键字1或关键字2或关键字3到任意一个,展示该行
-
多条件与
grep '关键字1' info.log | grep '关键字2' | grep '关键字3'
匹配到关键字1和关键字2和关键字3全部,展示该行
3.多文件grep
-
当前目录下grep文件
grep 关键字 *
-
当前目录下grep文件夹以及文件夹下所有文件(递归)
grep -r 关键字 *
3.demo
-
在info.log 模糊查询关键字(订单号:5a8f4709db9d493b),并显示匹配行上下10行,以及行号
grep -n -C10 '订单号:5a8f4709db9d493b' info.log