經常使用查看日誌的時候用的 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' 則會顯示行號 和行的內容