利用AWK进行日志数据处理与分析
1. 从Web日志中展示数据
之前已经了解了如何使用AWK查看Apache Web服务器的日志文件,现在将使用内容更丰富多样的演示文件进行操作。
2. 按日期筛选条目
在掌握了如何显示日期后,接下来看看如何仅打印某一天的条目。可以使用AWK中的匹配运算符(用波浪号~表示)。由于只需要日期元素,无需同时使用日期和时区字段。以下命令展示了如何打印2014年9月10日的条目:
$ awk ' ( $4 ~ /10\/Sep\/2014/ ) ' access.log此命令中的圆括号界定了要查找的行范围,省略了主代码块,这样可以打印出范围内所有匹配的完整行。还可以对匹配行中的字段进行进一步过滤。例如,若要打印用于访问Web服务器的客户端IP地址,可打印第1个字段,命令如下:
$ awk ' ( $4 ~ /10\/Sep\/2014/ ) { print $1 } ' access.log若要打印特定日期的总访问次数,可以将条目通过管道传递给wc命令:
$ awk ' ( $4 ~ /10\/Sep\/2014/ ) { print $1 } ' access.log | wc -l不过,使用AWK来完成此任务会更高效。可以使用内置变量