【发布时间】:2017-11-03 12:56:18
【问题描述】:
我正在过滤 Apache 日志,但连接多个过滤器时没有输出。试图将问题减少到一个最小的例子,似乎 grep 无法将输出转发到管道
$ tail -F access_log | grep test
10.108.57.6 - - [03/Nov/2017:12:35:55 +0000] "GET /test HTTP/1.1" 404 202 "-" "curl/7.11.0 (i686-pc-linux-gnu) libcurl/7.11.0 OpenSSL/1.0.2d ipv6 zlib/1.1.3" 161
$ tail -F access_log | grep test | grep test
# nothing
$ tail -F access_log | grep test | sed 's/test/asd/g'
# nothing
$ tail -F access_log | sed 's/test/asd/g' | grep asd
10.108.57.6 - - [03/Nov/2017:12:44:58 +0000] "GET /asd HTTP/1.1" 404 202 "-" "curl/7.11.0 (i686-pc-linux-gnu) libcurl/7.11.0 OpenSSL/1.0.2d ipv6 zlib/1.1.3" 143
有灯吗?
我在 Centos 7.2 上,使用 grep 2.20
【问题讨论】:
-
当您发出请求时,您确定有与您的
| grep test | grep test示例匹配的请求吗?问题是每次运行命令时数据都不同。我建议创建一个静态文件,其中包含一些您知道要过滤和操作并通过管道收集它们的请求 -
当然,问题是在同一个 test 页面上重复请求时重现的,如第一个示例所示