날짜가 포함된 변수에 대해 명령을 실행하는 방법은 무엇입니까?

날짜가 포함된 변수에 대해 명령을 실행하는 방법은 무엇입니까?

"MM/DD/YY" 형식의 날짜를 가져와서 기본 날짜 형식(2014년 10월 31일 금요일 17:23:07 CDT)으로 다시 변경할 수 있어야 합니다. 이것이 나를 미치게 만든다. 아래 코드는 무의미해 보일 수 있지만 이는 제가 해야 할 숙제일 뿐입니다. 누군가가 MM/DD/YY 형식으로 날짜를 입력한 다음 해당 날짜를 기본 형식의 파일에 저장된 날짜와 비교해야 합니다.

제가 있는 곳은 다음과 같습니다.

#! /bin/bash

date=`date +%D`
newdate=`$date +%a%b%e%H:%M:%S%Z%Y`

echo $newdate

"해당 파일이나 디렉터리가 없습니다." 오류가 발생합니다. 첫째, 내가 하고 싶은 일을 어떻게 하는가? 둘째, "+%a%b%e...blah blah..." 대신 기본 날짜 형식을 사용하는 더 쉬운 방법이 있습니까?

도와주셔서 감사합니다.

답변1

나는 당신을 위해 숙제를 하고 싶지 않지만 이것이 당신에게 올바른 방향을 제시할 수 있습니다.

#!/bin/sh

date=`date +%D`
echo "Date in MM/DD/YY:"
echo $date

newdate=`date -d $date +"%a %b %e %H:%M:%S %Z %Y"`
echo "Date Expanded:"
echo $newdate

hash="$(echo -n "$newdate" | md5sum | awk '{print $1}')"
echo "Hash of expanded date:"
echo $hash

비교해야 하는 날짜를 포함하여 모든 연장 날짜의 해시를 만든 다음 두 해시만 비교할 수 있습니다. 그렇다면 ==당신은 일치하는 사람이 있습니다.

if [ "$hash1" == "$hash2" ]
then
    echo "Dates are a match!"
else
    echo "Dates are NOT a match..."
fi

관련 정보