我有需要剪切的日志文件,每行输出DD-MM-YYYY HH:MM:SS。理想情况下,我想这样的文件的最后10分钟。如何在sed中包含perl命令?
我有一个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。
sed '1,/29-02-2012 16:07/d;/=$(date +%d-%m-%y %H:%M:%S")/,$d' debug.log | tee cut-log | less
赞赏任何帮助...
你有没有gnu sed? – Kent 2012-02-29 16:55:24
您可以使用TZ var操作Solaris 8日期(目前无法访问那些东西),在comp.unix.shell中进行谷歌组搜索会带来这种情况。看看你的系统是否安装了GNU工具,通常在/ usr/local/bin中,这会让事情变得更简单。另外,虽然不是一个好的shell,但是你在做什么,在csh中不应该是可能的。所有这一切说,我认为下面的kev是正确的。祝你好运。 – shellter 2012-02-29 17:24:09