0

我正在尝试在 1 小时之前 grep 日志

像这样:-

grep "$(date --date='1 hour ago +%H') /var/log/oss.log | grep "MTS" > oss.new.log

但是它在日志中搜索"04"和我的输出是这样的

frwY01jtaX 00:04:46,739 ERROR SiteDetectionUtil:47 MTS 
OlvYM6czmz 00:04:54,348 ERROR SiteDetectionUtil:47 MTS 
5iUr2l1LNv 01:04:40,764 ERROR SiteDetectionUtil:47 MTS
EZ35Xum6eG 02:04:10,328 ERROR SiteDetectionUtil:47 MTS
pCxbg584le 02:04:21,236 ERROR SiteDetectionUtil:47 MTS
K3rPlPgIpb 03:04:50,529 ERROR SiteDetectionUtil:47 MTS
rRz4IW94mB 03:04:55,728 ERROR SiteDetectionUtil:47 MTS
Ir91iBSCUc 04:00:05,571 ERROR SiteDetectionUtil:47 MTS
jp00Sfavl5 04:00:15,489 ERROR SiteDetectionUtil:47 MTS
Ks5w1eP90F 04:00:40,794 ERROR SiteDetectionUtil:47 MTS

它的比赛04在每个小时。

我只需要下面的输出

Ir91iBSCUc 04:00:05,571 ERROR SiteDetectionUtil:47 MTS
jp00Sfavl5 04:00:15,489 ERROR SiteDetectionUtil:47 MTS
Ks5w1eP90F 04:00:40,794 ERROR SiteDetectionUtil:47 MTS
jkljkfhknk 04:00:41,768 ERROR SiteDetectionUtil:47 MTS

只有04小时日志

请帮我...

4

2 回答 2

1

你可以试试这个

grep " $(date --date='1 hour ago' '+%H').*MTS" /var/log/oss.log > oss.new.log

或者

grep "\s$(date --date='1 hour ago' '+%H').*MTS" /var/log/oss.log > oss.new.log
于 2013-07-16T06:14:07.220 回答
0

在您的 grep 部分之前添加一个空格并在之后添加一个“:”。例如 grep04:应该是你的 date 命令的输出

于 2013-07-16T06:14:14.313 回答