유닉스에서 날짜와 패턴 일치하는 방법

유닉스에서 날짜와 패턴 일치하는 방법

파일에서 지난 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

관련 정보