grep命令应该是我们分析过滤常用的命令,某些情况下,我们需要排除某些条件
比如我要看日志中所有 GET请求,但 不要GET /image 这个目录的请求。
那我们这个grep怎么写?
思路:
当 grep 所有GET,然后在排除 GET /image 的请求。
这时我们就用到了 -v 选项,我么来看 v 的说明 :反转匹配
那么 grep 就这么写:
grep 'GET' nginx.log | grep -v 'GET /image'
如果还要排除 GET /js 那?
有同学可能会这么写:
grep 'GET' nginx.log | grep -v 'GET /image' | grep 'GET /js'
如果有多个排除,这样写就显得很啰嗦,而且有多个的话,效率就会降低。
我们看看grep的用法:
grep [OPTIONS] PATTERN [FILE...]
可以看到 是可以写正则表达式的
那上面的就可以这么写:
grep 'GET' nginx.log | grep -v 'GET /image|GET /js|'