Linux查看日志-grep

1.基本语法

grep [参数] 关键字 文件 
  1. 参数选项:

    -n 结果显示行号
    -c 关键字匹配的行次数
    -i 关键字忽略大小写
    -v 反向选择
    -e 后跟一个正则表达式
    -m10 查找到10次就停止继续查找
    -A10 显示关键字所在行和后10行
    -B10 显示关键字所在行和前10行
    -C10 显示关键字所在行和前后10行
    --color=auto 关键字高亮显示(多个参数一起使用,color属性需要放最后,注意是两个短线)

  2. 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

  1. 多条件或

    grep -E '关键字1|关键字2|关键字3' info.log

匹配关键字1或关键字2或关键字3到任意一个,展示该行

  1. 多条件与

    grep '关键字1' info.log | grep '关键字2' | grep '关键字3'

匹配到关键字1和关键字2和关键字3全部,展示该行

3.多文件grep

  1. 当前目录下grep文件

    grep 关键字 *

  2. 当前目录下grep文件夹以及文件夹下所有文件(递归)

    grep -r 关键字 *

3.demo

  1. 在info.log 模糊查询关键字(订单号:5a8f4709db9d493b),并显示匹配行上下10行,以及行号

    grep -n -C10 '订单号:5a8f4709db9d493b' info.log

转自:Joe小学弟
原文地址:https://www.cnblogs.com/laraine/p/14107675.html