如何获取昨天的日期并将其存储到一个变量中

如何获取昨天的日期并将其存储到一个变量中

我有一个日志文件,需要根据昨天的日期进行 grep 。如何获取昨天的日期。

日志文件中的时间戳格式为:

  • Wed Sep 23对于两位数
  • Wed Dec 1一位数

请注意,我使用的是 HP/UX,而date不是 GNU date

答案1

希望你能使用perl

$ dt=`perl -e 'print substr(scalar localtime(time-86400),0,10)'`
$ echo "$dt"
Sat Dec  5
$ grep "$dt" <logfile>

perl上面的代码中,time返回自纪元以来的当前时间(以秒为单位)。为了得到昨天,减去 86400 秒并标量以人类可读的格式打印它。我假设您只需要昨天的DAY MON DT格式,因此您可以 grep 匹配当天的所有行,无论时间如何。要仅获取必填字段,请使用substr打印前 10 个字符并保存在dt变量中。您可以将该变量与 一起使用grep

答案2

你的问题措辞不好,但从我收集的信息来看,你正在寻找这样的东西:

date --date="-1 day" +"%a %b %-d"

这将为您提供昨天的日期,其格式与您在日志文件片段中提供的格式相同。您可以通过执行以下操作将其保存到变量中:

yesterday=$(date --date="-1 day" +"%a %b %-d")

或者要 grep 你可以执行如下操作:

yesterday=$(date --date="-1 day" +"%a %b %-d") ; grep "$yesterday" <file name>

我希望能回答你的问题

相关内容