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