linux grep 经常使用格式

经常使用查看日志的时候用的 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'  则会显示行号 和行的内容
相关文章
相关标签/搜索