【问题标题】:get status code as output from Apache "access" log file format获取状态代码作为 Apache“访问”日志文件格式的输出
【发布时间】:2021-09-10 11:14:05
【问题描述】:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

如何使用上面的代码 sn-p 输出状态码, 我尝试使用 cut 命令,但似乎有一些问题

【问题讨论】:

  • 试试awk '{print $(NF-1)}' access.log
  • edit 您的问题以显示预期的输出(不要指望我们知道该行的哪一部分是状态代码)并显示您自己解决问题的尝试。如果“状态代码”可以显示在不同行的不同位置(即在它之前或之后有更多以空格分隔的字符串),那么包括更多的输入/输出行。
  • 顺便说一句,“似乎有一些问题”是最糟糕的问题描述。 edit您的问题是告诉我们以何种方式出现问题 - 错误输出、无输出、错误消息、核心转储,还是其他?

标签: linux awk sed grep


【解决方案1】:

如果您使用 awk,您可以执行以下两种操作之一: 如果您假设状态始终是第 9 个字段(请记住它默认使用空格进行标记)

  awk '{print $9}' 

或者如果您假设它始终是倒数第二个字段(如 cmets 中提到的@anubhave):

  awk '{print $(NF-1)}'

如果你更喜欢 sed

  sed -n  's/.*GET [^ ]* HTTP[^ ]*" \([0-9]\{3\}\) .*/\1/p'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2019-04-14
    • 2015-01-29
    • 1970-01-01
    • 2019-03-16
    • 2015-06-04
    • 1970-01-01
    相关资源
    最近更新 更多