使用 grep、sed、awk 和 cut 从日志中获取信息

使用 grep、sed、awk 和 cut 从日志中获取信息

我正在尝试使用简单的命令从日志文件中提取数据。

这是文件中的示例行

128.101.35.183 - - [23/Mar/2008:00:03:10 +0000] "GET /javascript/email.js HTTP/1.1" 200 359 "http://www.cs.ucd.ie/Staff/AcademicStaff/bsmyth/"; "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"

如何获取以以下格式显示的文件中第一个和最后一个日志条目的日期和时间:

2008 年 3 月 23 日:00:03:10

没有其他角色?

答案1

尝试以下方法获取日志文件中第一行和最后一行的时间戳:

{ head -n 1 my_log_file; tail -n 1 my_log_file; } | awk '{print $4}' | tr -d '['

顺便说一句,这看起来像 Apache 日志,您可能希望考虑使用日志存储解析您的结构化日志。

答案2

awk -F"[][]" 'NR==1{sub(" .*","",$2);print $2}END{sub(" .*","",$2);print $2}' logfile

相关内容