파일에서 지난 1시간의 데이터를 추출하고 싶습니다. 나는 다음 스크립트를 작성했습니다.
Date="$(date -d -1hour +"%b %d, %Y %l:mi:ss %p")"
grep "$Date" /tmp/user/file.log > TMP.log
문제는 실행하면 오전, 오후 시간 모두 데이터가 나온다는 점입니다. 날짜 형식에 문제가 있는 것 같습니다. 현재 날짜가 AM인 경우에만 AM 데이터가 TMP.log
.
문서. 로그 내용:
<Dec 4, 2019 10:59:34 AM PST> <Error> <oracle.sdpinternal.messaging.driver.email.inbound.ImapEmailStore> <SDP-26123> <Could not initialize Email Store for: user , server outlook.office365.com, folder INBOX, sslEnabled true
javax.mail.AuthenticationFailedException: AUTHENTICATE failed.
<Dec 4, 2019 10:59:34 PM PST> <Error> <oracle.sdpinternal.messaging.driver.email.inbound.ImapEmailStore> <SDP-26123> <Could not initialize Email Store for: user, server outlook.office365.com, folder INBOX, sslEnabled true
javax.mail.AuthenticationFailedException: AUTHENTICATE failed.
답변1
date -d -1hour +"%b %d, %Y %l:mi:ss %p"
출력은 다음과 유사합니다.
Dec 05, 2019 6:mi:ss am # GB
Dec 05, 2019 6:mi:ss AM # US
Dez 05, 2019 6:mi:ss # DE
déc. 05, 2019 6:mi:ss # FR
지역에 따라 다릅니다.
그러나 미국 형식도 로그 파일에 사용되는 형식과는 거리가 멀습니다.
노력하다
LC_ALL=C date -d -1hour +"%b %e, %Y %r %Z"
(귀하가 미국 태평양 시간대(예 America/Los_Angeles
: ) 에 있다고 가정하면 %Z
이는 일반적으로 까지 확장됩니다 PST
.)
이것은 다음과 같은 것을 제공합니다:
Dec 4, 2019 10:17:38 PM PST