我会分两步做。(可以一次性完成):
1、获取日期字符串 2、做比较
例如:
kent$ d=$(echo "aaaaaaaaaaaaaaaaaaaaddddd
sadasdafnsdfoisjhpfnsf
dasnfdfmsdf until: Thu Apr 29 19:41:02 EEST 2021 dasd
asdasmda[mfiun[hg[sm df,
dfmsdf[ismdfsdfsd,flsdfsdf******************"|grep -o '[A-Z].*[0-9]')
检查 var d:
kent$ echo $d
Thu Apr 29 19:41:02 EEST 2021
现在我们将这个日期与今天进行比较。我们需要将两个日期都转换为秒来进行比较:
kent$ echo $(($(date -d"${d}" +%s)-$(date +%s)))
251171977
我打印了上面命令的结果。在您的情况下,您可以将其分配给 var。或者直接检查结果。如果它 > 0 表示将来文本中的日期。否则,它是过去(或与今天相同)。
编辑
一些数学:
与int:
kent$ echo $((251171977/(3600*24)))
2907
精确:
kent$ echo "scale=2;251171977/(3600*24)"|bc
2907.08
更确切地说:
kent$ echo "scale=7;251171977/(3600*24)"|bc
2907.0830671