0

在 IHS 访问日志中,如果有 401 响应,我需要逐行获取信息。

以下是格式,我需要逐行浏览日志以获取用户属性前面的特定数字(在本示例中为 123 或 432),仅当在线找到 401 响应时。

例如,如果该行的第 n 个单词是 401,则从第 n 列中获取该数字并打印它。

 myhost.com xxx.x.xxx.x aaa.aa.aa.aaa - - [14/Aug/2013:10:44:55 +1000] "GET /http/user=123 HTTP/1.1" 401 55 "-" "Apache-HttpClient/4.2.3 (java 1.5)" 21293 80 0
 myhost.com xxx.x.xxx.x aaa.aa.aa.aaa - - [14/Aug/2013:10:45:55 +1000] "GET /http/user=432 HTTP/1.1" 401 55 "-" "Apache-HttpClient/4.2.3 (java 1.5)" 21293 80 0
4

2 回答 2

1

如果第 12 个字段是 401,则使用空格或“=”符号标记记录并打印第 10 个字段。

awk -F' |=' '$12 ~/401/{print $10}' inputFile
于 2013-08-14T02:55:27.517 回答
0
perl -F'\s|=' -lane 'print $F[9] if $F[11] == 401' your_file.txt
于 2013-08-14T02:56:54.983 回答