我试图将用户给出的日期与文件中的日期进行比较,基本上是列出了大量日期和时间的文本文件。
例如,用户将输入日期,例如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年.–)