我有一个文件说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
答案 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
格式化选项的人。)