与unix中的sysdate比较

时间:2014-02-25 08:05:37

标签: unix

我有一个文件说File.txt,其内容如下

XYZ_2-3-2013
ABC_12-11-2013
TWP_1-1-2014
UTR_2-2-2014
.
.
.
等等。 我的后缀部分是日期部分。 现在我需要检查哪个有30天或更长时间。 例如:根据上述文件,以下内容有30天或更长时间:

XYZ_2-3-2013
ABC_12-11-2013
TWP_1-1-2014

因为它需要与sysdate进行比较。 你能不能帮我找到这个?

最诚挚的问候, Quaish

1 个答案:

答案 0 :(得分:1)

试试这个:

while IFS=_- read x month day year
do
  [ "$(date -d "$year-$month-$day" +%s)" -lt "$(date -d "today - 30 days" +%s)" ] &&
    echo "${x}_$month-$day-$year is more than 30 days ago"
done < inputfile.txt

对我而言,它输出:

XYZ_2-3-2013 is more than 30 days ago
ABC_12-11-2013 is more than 30 days ago
TWP_1-1-2014 is more than 30 days ago

如果您的日期采用日 - 月 - 年格式,只需交换read的变量名称:

read x day month year

这假定您使用的是Gnu date(或任何其他了解+%s格式化选项的人。)