【发布时间】:2017-01-19 01:17:00
【问题描述】:
正如标题所说,我想为第 3 列中的每个特定值在第 1 列中找到最大值。然后我想为具有 ip-address 的行打印第 2 列,第 3 列与错误代码。
我的代码:
cat $NAME |awk '{print $1, $9}' | sort -k 1 -k 2 | uniq -c | sort -k 3
忘了提到我们正在打开一个日志文件,我们将其放入变量“NAME”中,并且在日志文件中有超过 9 列。9 表示服务器响应代码。这是日志文件中一行的示例:
127.0.0.1 - stefan [01/Apr/2002:12:17:10 +0200] "GET / HTTP/1.1" 200 301 "" "Mozilla/5.0(兼容;Konqueror/2.2.2-2;Linux )"
【问题讨论】:
-
您从哪里获得九个 (
9) 值(例如$9)来自 index、IP 地址 和 服务器响应代码如果您的字段分隔符是默认值? (如果您的输出反映您的输入,则最多可提供3) -
忘了提到我们正在打开一个日志文件,我们将其放入变量“NAME”中,并且在日志文件中有超过 9 列。9 表示服务器响应代码。