Unixで日付とパターンを一致させる方法

Unixで日付とパターンを一致させる方法

ファイルから過去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

おすすめ記事