【发布时间】:2012-02-29 16:52:43
【问题描述】:
我有需要剪切的日志文件,每行输出 DD-MM-YYYY HH:MM:SS。理想情况下,我想要此类文件的最后 10 分钟。
我有一个 perl 命令来获取 10 分钟前的时间:
perl -e 'use POSIX qw(strftime); print strftime "%e-%m-%Y %H:%M:%S",\ localtime(time()- 600);'
样本输出:29-02-2012 16:38:14
和一个 sed 命令来剪切文件。这适用于手动日期和系统时间现在作为第二个变量。我认为我使用的是 Solaris 8 和 c shell,所以我无法使用 date 的更高级功能。
sed '1,/29-02-2012 16:07/d;/=$(date +%d-%m-%y %H:%M:%S")/,$d' debug.log | tee cut-log | less
任何帮助表示赞赏...
【问题讨论】:
-
您可以使用 TZ var 操作 Solaris 8 日期(目前无权访问这些内容),在 comp.unix.shell 中的 google 群组搜索将显示该内容。查看您的系统是否安装了 GNU 工具,通常在 /usr/local/bin 中,这会使事情变得更容易。此外,虽然不是一个很好的外壳,但在 csh 中没有什么是不可能的。综上所述,我认为下面的 kev 是在正确的轨道上。祝你好运。