比较两个文件之间的日期值

比较两个文件之间的日期值

我有两个带有日期的文件:

文件1

12/22/2017

文件2

12/21/2017    
12/20/2017    
12/23/2017    

File1 将只有一条记录。 File2 将有多个记录。我需要检查 file2 中的任何日期是否大于 file1 中的日期。两个文件中的日期格式均为MM/DD/YYYY.

答案1

这是sort两个文件的小脚本,greps 表示比 file1 晚的日期,然后wc -l如果超过 1uniq行(应该只有 1 行来自 file1)则计数 ( ):

if [[ "$(sort -t/ -k3,3n -k1,1n -k2,2n file1 file2 | grep -A 1 -f file1 | uniq | wc -l)" -gt 1 ]]
    then
       echo "Date in file2 is greater than file1"
    else
       echo "Date in file2 is not greater than file1"
fi

答案2

GNUawk解决方案:

awk -F'/' '{ d=$3$1$2 }
           NR==FNR{ t=d; nextfile }
           d > t{ 
               print "file2 has date(s) greater than in file1";
               exit 
           }' file1 file2

输出:

file2 has date(s) greater than in file1

答案3

从纪元获取以秒为单位的时间(请参阅 man stat)并打印差异。

T1=$(stat --printf='%Y\n' file1.txt)
T2=$(stat --printf='%Y\n' file2.txt)

echo $(($T1 - $T2))

相关内容