다음과 같은 로그 파일이 있습니다.
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))"