我有一个Perl脚本,它将在linux suse上的cron作业中运行。它将输入昨天生成的日志文件作为输入。日志的文件名包含日期(即log.20100209)
我可以使用提示中的格式发送昨天的日期吗?我应该创建一个额外的脚本来获取日期并执行吗?如果是这样,我该怎么做?
由于
perl myscript.pl -f log.20100209
修改
感谢您的帮助
它适用于:
perl myscript.pl -f log.`date --date='yesterday' '+%Y%m%d'`
答案 0 :(得分:28)
GNU日期:
date --date='yesterday' '+%Y%m%d'
答案 1 :(得分:1)
你可以像这样得到昨天的日期:
perl -we'@a=localtime(time-24*3600);printf "%04d%02d%02d", $a[5]+1900, $a[4]+1, $a[3]'
您可以在提示符处调用脚本时使用此选项:
perl myscript.pl -f log.`perl -we'@a=localtime(time-24*3600);printf "%04d%02d%02d", $a[5]+1900, $a[4]+1, $a[3]'`
但这是不可读的,我建议你写一个计算昨天日期的正确脚本,然后调用myscript.pl。
答案 2 :(得分:0)
您不需要将昨天的日期作为附加参数发送。您可以使用其他两种方法获取它:
Perl有a lot of modules来处理日期和时间,具体取决于您需要做什么。