shell百例 --- 取出指定时间段的文本

很多类似于日志这样的文件中都有时间字段。有时候,我们希望取出某一段时间段的数据。例如这个文件:

[root@www py2]# cat mylog.log 
2019-05-15 08:10:01 aaaa
2019-05-15 08:32:00 bbbb
2019-05-15 09:01:02 cccc
2019-05-15 09:28:23 dddd
2019-05-15 10:42:58 eeee
2019-05-15 11:08:00 ffff
2019-05-15 12:35:03 gggg
2019-05-15 13:13:24 hhhh

我们想要得到9:00到12:00之间的数据。观察文件,发现其特点是时间都是在同一列,可以使用 awk 工具提取出,然后进行比较,最后输出符合条件的行即可:

#!/bin/bash
# awk 使用 -F 选项指定文件内容的分隔符是 ' '(空格) 或者 ':'(冒号)
# 条件判断 $2:$3 大于等于 09:00 , 并且要求 , $2:$3 小于等于 12:00 
awk -F[: ] '"09:00" <= $2":"$3 && $2":"$3 <= "12:00"' mylog.log
原文地址:https://www.cnblogs.com/liangbc/p/12691375.html