Bash:
두 날짜 비교하기

How to: (방법:)

# 날짜 형식 YYYY-MM-DD
DATE1="2023-04-01"
DATE2=$(date '+%Y-%m-%d')  # 오늘 날짜

# 날짜 비교하기
if [[ "$DATE1" < "$DATE2" ]]; then
  echo "DATE1 is earlier than DATE2."
elif [[ "$DATE1" > "$DATE2" ]]; then
  echo "DATE1 is later than DATE2."
else
  echo "DATE1 and DATE2 are the same."
fi

샘플 출력:

DATE1 is earlier than DATE2.

Deep Dive (심화 탐구):

날짜 비교는 유닉스 시간(Unix Time) 개념으로 거슬러 올라갑니다. 1970년 1월 1일부터 초를 센 것이죠. 백 그 이전에는 날짜를 문자열로 비교하는 방식을 많이 썼습니다. date 명령어로 날짜를 유닉스 시간으로 변환하여 정수 비교를 할 수도 있습니다. 이는 시간대 변환, 날짜 연산에 유용합니다.

Bash 이외에도 awk, perl 같은 언어로 날짜를 비교할 수 있고, dateutils 같은 도구도 사용할 수 있습니다. Bash에서는 날짜를 직접 비교하는 것 외에도 date 명령어로 초 단위로 변환하여 계산할 수도 있습니다. 예를 들어, 날짜 차이를 일 수로 알고 싶다면 다음과 같이 할 수 있습니다.

DATE1_IN_SECONDS=$(date --date "$DATE1" +%s)
DATE2_IN_SECONDS=$(date --date "$DATE2" +%s)
DIFF_IN_SECONDS=$((DATE2_IN_SECONDS-DATE1_IN_SECONDS))
DIFF_IN_DAYS=$((DIFF_IN_SECONDS/86400))

echo "The difference is $DIFF_IN_DAYS days."

See Also (참조):