经常使用查看日志的时候用的 grep 命令参数
grep -i 表示忽略大小写
tail -f logs/server.log | grep -i Roster //表示模糊匹配匹配的是 从server.log 中查找 roster 忽略大小写匹配的内容行
grep -A [number] [name] 表示查找文件中为 name的行数据,以及该行的 下面 number行数据
tail -f logs/server.log | grep -A 2 roster //表示 模糊匹配 文件server.log中为roster的数据,同时也获取该数据下的2行数据
demo:
[root@WEBPORTAL RosterServer-1.1.0-SNAPSHOT]# tail -100 logs/server.log | grep 'The Activity is not runing,Name:duan1 Status:-1'
2017-11-01 11:50:00,173 64392139 [tzScheduler_Worker-9] INFO .orm.rosterServer.ActivityImpl ( 67) The Activity is not runing,Name:duan1 Status:-1
[root@WEBPORTAL RosterServer-1.1.0-SNAPSHOT]# tail -100 logs/orm.log | grep -A 2 'The Activity is not runing,Name:duan1 Status:-1'
2017-11-01 11:55:00,334 64692300 [zScheduler_Worker-10] INFO .orm.rosterServer.ActivityImpl ( 67) The Activity is not runing,Name:duan1 Status:-1
2017-11-01 11:55:00,334 64692300 [zScheduler_Worker-10] INFO .orm.rosterServer.ActivityImpl ( 67) Activity duan1 checkTimeoutDailTask
2017-11-01 11:55:00,335 64692301 [zScheduler_Worker-10] INFO .orm.rosterServer.ActivityImpl ( 67) Activity duan5 insertActivityStat
grep -B [number] [name] 表示查找文件中为 name的行数据,以及该行数据上的 number数据,格式和 -A 同样
grep -C [number] [name] 表示查找文件中为 name的行数据,以及该行数据上 和下 的 number数据,格式和 -A 同样,至关于 -A -B的混合;
-A 表示的是 after -B 表示的 before -C表示的意思是 center
grep -v [name] 表示反转内容;即表示 展现排除 符合 为name 行的数据
date.log
#name = duan
#test=23
age = 12
cat date.log | grep -v '#' 展现内容为:
age = 12
grep -c [name] 计算匹配项的数目
>> tail -100 logs/server.log | grep -c 'roster'
>> 100
grep -w [name] 精确匹配
>> //假如文件中有 单词 runnable
>> tail -100 logs/server.log | grep 'run' 能够匹配的到
>> tail -100 logs/server.log | grep -w 'run' 匹配不到
grep -n 表示显示行数
>> tail -100 logs/server.log | grep -n 'run' 则会显示行号 和行的内容