我想要访问HTTP访问日志,但我无法编写有效的正则表达式。这是我现在使用的:
grep \/console access.log | grep -v .gif | grep -v .js |grep -v .css
我该如何缩短它?谢谢!
答案 0 :(得分:1)
grep不支持lookahead,所以你仍然需要有两个实例:
grep /console access.log | grep -v '\.\(gif|js|css\)'
使用负前瞻,一个较小的,但不一定更具可读性的正则表达式
^(?!.*?\.(gif|js|css)).*/console.*$
答案 1 :(得分:0)
这可能会或可能不会更简单。
sed -r -n -e '/\.(js|css|gif)/d' -e '\%/console%p' access.log