以H:MM:SS格式打印时间戳

时间:2014-05-02 00:56:58

标签: bash grep

在文件上工作需要使用H:MM:SS格式的时间戳来grep该行。我尝试了以下egrep '[0-9]\:[0-9]\:[0-9]'。不适合我。我在正则表达式中做错了什么?

3 个答案:

答案 0 :(得分:5)

$ date -u | egrep '\d{1,2}:\d{1,2}:\d{1,2}'
Fri May  2 00:59:47 UTC 2014

尝试使用http://regexpal.com/

这样的网站

答案 1 :(得分:3)

以下是修复:

grep '[0-9]:[0-9][0-9]:[0-9][0-9]'

如果你只需要获得时间戳,你的grep就是gnu grep。

grep -o '[0-9]:[0-9][0-9]:[0-9][0-9]'

如果你的工作更加努力,只限时间格式:

grep '[0-2][0-9]:[0-5][0-9]:[0-5][0-9]'

答案 2 :(得分:0)

我知道的最简单的方法:

grep -E '([0-9]{2}:){2}[0-9]{2}' file

如果您还需要月份和日期:

grep -E '.{3,4} .{,2} ([0-9]{2}:){2}[0-9]{2}' file