使用awk基于多个日志文件上的日期和时间范围进行日志文件搜索

使用awk基于多个日志文件上的日期和时间范围进行日志文件搜索,awk,Awk,我将日志文件分散在各种日志文件上(基本上,它们被设置为旋转日志)。我需要根据日期和时间提取日志。。 示例日志文件具有以下内容 2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <INFO > Loaded properties 2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <INFO > Initialized logging 2012.12.06 01:56:

我将日志文件分散在各种日志文件上(基本上,它们被设置为旋转日志)。我需要根据日期和时间提取日志。。 示例日志文件具有以下内容

2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <INFO   > Loaded properties
2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <INFO   > Initialized logging
2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <CONFIG > Log levels = 
我需要使用logfilenames内容(它具有该目录中日志文件的完整路径)作为for循环中的输入来搜索从开始日期时间到结束日期时间的正确日志文件名,并将其输出到不同的文件

需要有关for循环的帮助才能完成此脚本。

为什么不这样做呢


awk-F-'“2012.12.06 01:56:01”<$1&&$1好问题,但我们无法告诉您希望在logfilenames.txt中看到什么。完整路径,
ls-lth
或??请编辑您的问题,以包含filel logfilenames.txt所需的输出。Good luck.logfilenames.txt…将有来自find server.log*-exec ls-lth{}\|的输出awk{print$9}作为/directory/subdirectory/logs/server.logwell,这当然有效……谢谢。但我该如何处理输出呢?另外,如果我想向用户输出开始日期和时间以及结束日期时间位于这些服务器日志文件中,那么从用户的角度来看,这将是一个很好的信息。如何将其重定向到输出文件。。?awk-F-“'2012.12.06 01:56:01”<$1&&$1日志文件=“$HOSTNAME.log”awk-F-“$starttime”<$1&&$1这是因为“$starttime”和“$endtime”对awk不可用。您需要使用将bash变量传递给awk脚本,但这需要重写您的单行脚本。meta-
cat
有点可爱,但这仍然是一个问题。我可能会使用
xargs cat
awk -F - '"2012.12.06 01:56:01" < $1 && $1 <= "2012.12.08 04:30:00"' server.log   server.log.1
find server.log* -exec ls -lth {} \; | awk '{print $9}' > logfilenames.txt
cat `cat logfilenames.txt` 
find server.log* -exec ls -lth {} \; | awk '{print $9}' | xargs awk -F - '"2012.12.06 01:56:01" < $1 && $1 <= "2012.12.08 04:30:00"'