2つのファイル間の日付値の比較

2つのファイル間の日付値の比較

日付を含む2つのファイルがあります。

ファイル1

12/22/2017

ファイル2

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

File1にはレコードが1つしかありません。 File2 には複数のレコードがあります。 file2の日付がfile1の日付より大きいことを確認する必要があります。両方のファイルの日付形式はMM/DD/YYYY

答え1

以下は、sort両方のファイルの小さなスクリプトです。greps は file1 より後の日付を表し、行がwc -l2 つ以上の場合はuniqcounts() です (file1 には 1 行だけでなければなりません)。

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

牛に似た一種の栄養awk解決策:

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))

関連情報