日付を含む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
両方のファイルの小さなスクリプトです。grep
s は file1 より後の日付を表し、行がwc -l
2 つ以上の場合はuniq
counts() です (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))