regex - 在 Linux 服务器上使用 "find"和正则表达式否定

标签 regex grep find regex-negation

我需要查看去年的所有 Apache 日志,看看是否曾从外部 IP 地址访问过某个 php 页面 (foobar.php)。

所以我需要在 Apache .log 和 log.gz 文件中找到包含 foobar.php 但排除来自所有 LAN IPs (192.168.x.x) 的访问的所有行。

find 或 grep 命令可以做到吗?

最佳答案

假设您的日志采用通用日志格式 (CLF),这样的事情应该可行:

zgrep -v '^192\.168\.' access.log* | grep '/foobar\.php'

关于regex - 在 Linux 服务器上使用 "find"和正则表达式否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165783/

相关文章:

php - 替换空格,但仅在限制之间替换 php

javascript - 使用 find Text() 多次出现时的额外匹配

javascript - 正则表达式从 window.pathname 中提取路径树

java - 如何控制 Java 正则表达式中的迭代步骤?

regex - 如何在 ubuntu 终端的目录中搜索两个标记之间的字符串并保存输出

linux - grep 没有停止或回显 "Not found"

c++ - 用于在字符串中查找字符序列的预构建函数?

linux - 从文本文件中的一行代码中搜索并打印特定的单词

bash - 你如何从 'find' 中获取结果?

scripting - 如何在 Solaris 上的 find 命令中排除完整目录路径列表