yO_*_*yO_ 2 grep date regular-expression
在名为 的文件中result,包含以下内容:
<span class=timestamp><b>15:31:00</b></span>
Run Code Online (Sandbox Code Playgroud)
如何grep时间戳?
以下是一些尝试及其输出:
> grep "[0..9]*:[0..9]*:[0..9]*" result -o
> grep "[0..9]*:[0..9]*" result -o
:
:00
> grep "[0..9]*:" result -o
:
:
Run Code Online (Sandbox Code Playgroud)
我会用
grep -o '[0-2][0-9]:[0-5][0-9]:[0-5][0-9]' result
Run Code Online (Sandbox Code Playgroud)
将结果限制为可能是时间戳的字符串——0 到 29 小时之间(作为 23 的近似值,假设 24 小时而不是上午/下午 12 小时),0 到 59 之间的分钟和秒。
引入扩展正则表达式可以让匹配更加严格:
grep -oE '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]' result
Run Code Online (Sandbox Code Playgroud)
为了允许闰秒,60 应该是一个可接受的值:
grep -oE '([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' result
Run Code Online (Sandbox Code Playgroud)
(它们是在 UTC 午夜之前添加的,但以上允许其他时区)。
| 归档时间: |
|
| 查看次数: |
3689 次 |
| 最近记录: |