문자열을 날짜로 변환하고 AIX에서 날짜/시간의 차이를 얻습니다.

문자열을 날짜로 변환하고 AIX에서 날짜/시간의 차이를 얻습니다.

다음과 같은 로그 파일이 있습니다.

2019.09.02 06:40:28 ---
2019.09.02 06:43:34 --- 
2019.09.02 06:43:41 ---

파일을 읽고 날짜/시간의 차이를 알아내야 합니다."2019.09.02 06:43:34" -그리고- "2019.09.02 06:40:28“몇 시간, 몇 분, 몇 초 안에요.

while read date time message
do
    if [[ $date = $searched_date* ]] && [[ $message = *$searched_message* ]] ; then
      #how to convert $date and $time to unixtime?
    fi
done <"$LOG_FILE"

저는 AIX 7을 사용하고 있는데 date -d.

답변1

ksh93은 printf입력 형식을 이해하므로 다음을 사용할 수 있습니다.

end=$(printf '%(%s)T' "2019.09.02 06:43:34")
start=$(printf '%(%s)T' "2019.09.02 06:40:28")
printf '%d\n' "$((1567421014-1567420828))"

또는 더 일반적으로:

seconds=$(printf '%(%s)T' "$date $time")

파섹을 hh:mm:ss로 변환하려면:

printf '%d hours, %d minutes, and %d seconds\n' "$((diff / 3600))" "$(( (diff % 3600) / 60))"  "$((diff % 60))"

관련 정보