我有两个带有日期的文件:
文件1
12/22/2017
文件2
12/21/2017
12/20/2017
12/23/2017
File1 将只有一条记录。 File2 将有多个记录。我需要检查 file2 中的任何日期是否大于 file1 中的日期。两个文件中的日期格式均为MM/DD/YYYY
.
答案1
这是sort
两个文件的小脚本,grep
s 表示比 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))