シェルスクリプトを使用して特定のタイムスタンプ間のログを取得する

シェルスクリプトを使用して特定のタイムスタンプ間のログを取得する

特定の時間範囲のログから情報を抽出するためにシェルスクリプトを使用したいと思います。ログの1行は次のとおりです。

[14:58:27:176][15-10-2015]: testing1-vidya-Thu Oct 15 11:49:27 IST 2015
[14:59:27:178][15-10-2015]: testing2-vidya-Thu Oct 15 11:49:27 IST 2015
[15:00:27:179][15-10-2015]: testing3-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:180][15-10-2015]: testing4-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:181][15-10-2015]: testing5-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:182][15-10-2015]: testing6-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:183][15-10-2015]: testing7-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:184][15-10-2015]: testing8-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:191][15-10-2015]: testing9-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:192][15-10-2015]: testing10-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:193][15-10-2015]: testing11-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:208][15-10-2015]: testing12-vidya-Thu Oct 15 11:49:27 IST 2015
[15:04:27:209][15-10-2015]: testing13-vidya-Thu Oct 15 11:49:27 IST 2015
[15:49:27:210][15-10-2015]: testing14-vidya-Thu Oct 15 11:49:27 IST 2015
[13:02:17:209][15-10-2015]: testing13-vidya-Thu Oct 15 11:49:27 IST 2015
[15:04:27:209][16-10-2015]: testing13-vidya-Fri Oct 16 11:49:27 IST 2015
[15:49:27:210][16-10-2015]: testing14-vidya-Fri Oct 16 11:49:27 IST 2015

特定の時間間隔でデータを抽出する必要があります。たとえば、2015年10月15日の14時59分から15時3分までの期間は次のとおりです。

[14:59:27:178][15-10-2015]: testing2-vidya-Thu Oct 15 11:49:27 IST 2015
[15:00:27:179][15-10-2015]: testing3-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:180][15-10-2015]: testing4-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:181][15-10-2015]: testing5-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:182][15-10-2015]: testing6-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:183][15-10-2015]: testing7-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:184][15-10-2015]: testing8-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:191][15-10-2015]: testing9-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:192][15-10-2015]: testing10-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:193][15-10-2015]: testing11-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:208][15-10-2015]: testing12-vidya-Thu Oct 15 11:49:27 IST 2015

私はシェルスクリプトに初めて触れました。 grepコマンドを使ってみました。誰でも私に何をすべきかを提案できますか?

ベストアンサー1

あなたが使用できるsed

sed -n '/\[14:59/,/\[15:03/p' log

アップデート:SSHによるリモート

ssh [email protected] "sed -n -e '/\[14:59/,/\[15:03/p' /var/logfile"

特定の日付の関心時間の間に見つかった行のみを抽出するには、検索文字列にその日付を含めます。

sed -n '/\[14:59.*15-10-2015*/,/\[15:03.*15-10-2015/p' log

おすすめ記事