自从开始用UNIX Pipeline后,感觉查日志速度快了一倍不止。什么是UNIX Pipeline我就不背书了,这里就记录下一些好用的命令吧。
日志示例:
INF [20160215-15:40:52.608] regservice: /alias => {"alias":"13587428", "header":{"name":"XXXX","appkey":"1234567890"}, "token":"abc1234567890"} 1.1.0.0
INF [20160215-15:40:52.608] regservice: /launch => {"header":{"name":"XXXX1","appkey":"1234567891"}, "token":"abc1234567891"} 1.2.0.0
...
grep
not,查找不包含字符串的记录
1 |
grep -v 'appkey1' logs.log |
and,查找满足多个条件的记录
1 |
grep 'appkey1' logs.log|grep 'token1' |
or,查找满足任意一个条件的记录
1 |
grep -E 'appkey1|appkey2' logs.log |
-oP,这个我也不知道如何描述,我的一个常用场景是:根据日志,统计每个appkey下的日志有多少。于是可用下面的记录先选出appkey(appkey长度固定为10位),以供后续处理:
1 |
grep -oP '"appkey":".{10}"' logs.log |
上文中日志示例的结果为:
1 2 3 |
"appkey":"1234567890" "appkey":"1234567891" ... |