任何人都可以帮我简化正则表达式吗?

时间:2011-10-14 16:32:35

标签: regex grep

我想要访问HTTP访问日志,但我无法编写有效的正则表达式。这是我现在使用的:

grep \/console access.log | grep -v .gif | grep -v .js |grep -v .css

我该如何缩短它?谢谢!

2 个答案:

答案 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