날짜가 포함된 두 개의 파일이 있습니다.
파일 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
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))