Bash脚本比较两个日期变量

前端之家收集整理的这篇文章主要介绍了Bash脚本比较两个日期变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将用户给出的日期与文件中的日期进行比较,基本上是列出了大量日期和时间的文本文件

例如,用户将输入日期,例如22/08/2007和1:00的时间,我需要脚本要做的是计算在用户给出的日期之后文本文件中有多少日期。

通过将文本文件中的每个日期转换为unix时间戳,然后比较两者,我已经设法完成此任务。没有办法简单地比较bash中的两个日期?

提前致谢

GNU date命令可以将日期转换为自1970年以来的秒数。尝试此脚本:
#! /bin/bash
DATE=$(date -d "$3-$2-$1 01" '+%s')
COUNT=0
tr '/' ' ' | {
    while read D M Y ; do
    THIS=$(date -d "$Y-$M-$D 01" '+%s')
    if (( THIS > DATE )) ; then
        COUNT=$((COUNT + 1))
    fi
    done
    echo $COUNT
}

它期望在stdin中有三个参数和原始日期:

for D in $(seq 19 25) ; do echo $D/08/2007 ; done | ./count.sh 22 08 2007
3

它将一直工作到2038年.–)

原文链接:https://www.f2er.com/bash/387819.html

猜你在找的Bash相关文章