如何使用日期格式grep行?

时间:2015-04-25 07:57:57

标签: regex bash date grep

我有一个使用$(date)的bash脚本创建的日志文件,因此有这样一种格式的日期:

Fri Apr 24 22:10:39 CEST 2015

日志文件如下所示:

Using SCRIPTS_ROOTDIR: /home/gillin/moses/scripts
Using multi-thread GIZA
using gzip 
(1) preparing corpus @ Fri Apr 24 22:10:39 CEST 2015
Executing: mkdir -p /media/2tb/ccexp/phrase-clustercat-mgiza/work.en-ru/training/corpus
(1.0) selecting factors @ Fri Apr 24 22:10:39 CEST 2015
Forking...
(1.2) creating vcb file /media/2tb/ccexp/phrase-clustercat-mgiza/work.en-ru/training/corpus/en.vcb @ Fri Apr 24 22:10:39 CEST 2015
(1.1) running mkcls  @ Fri Apr 24 22:10:39 CEST 2015
/home/gillin/moses/training-tools/mkcls -c50 -n2 -p/media/2tb/ccexp/corpus.exp/train-clean.en -V/media/2tb/ccexp/phrase-clustercat-mgiza/work.en-ru/training/corpus/en.vcb.classes opt
Executing: /home/gillin/moses/training-tools/mkcls -c50 -n2 -p/media/2tb/ccexp/corpus.exp/train-clean.en -V/media/2tb/ccexp/phrase-clustercat-mgiza/work.en-ru/training/corpus/en.vcb.classes opt
(1.1) running mkcls  @ Fri Apr 24 22:10:39 CEST 2015
/home/gillin/moses/training-tools/mkcls -c50 -n2 -p/media/2tb/ccexp/corpus.exp/train-clean.ru -V/media/2tb/ccexp/phrase-clustercat-mgiza/work.en-ru/training/corpus/ru.vcb.classes opt
Executing: /home/gillin/moses/training-tools/mkcls -c50 -n2 -p/media/2tb/ccexp/corpus.exp/train-clean.ru -V/media/2tb/ccexp/phrase-clustercat-mgiza/work.en-ru/training/corpus/ru.vcb.classes opt

有没有办法让我可以grep包含$(date)输出的所有行?

目前我正在使用这个正则表达式:

[a-z].*[1-9] [0-2][1-9]:[0-6][0-9]:[0-6][0-9] CEST 2015

它会像

一样捕获
preparing corpus @ Fri Apr 24 22:10:39 CEST 2015

但我需要全线:

(1) preparing corpus @ Fri Apr 24 22:10:39 CEST 2015

而且年份和时间都是硬编码的。是否有更好的正则表达式或unix工具可以提取$(date)输出的行?

1 个答案:

答案 0 :(得分:1)

试试这个:

unalias grep
grep --color=never '.*[a-z].*[1-9] [0-2][1-9]:[0-6][0-9]:[0-6][0-9] CEST 2015' file