![使用 shell 脚本获取特定时间戳之间的日志以及日期](https://linux22.com/image/75423/%E4%BD%BF%E7%94%A8%20shell%20%E8%84%9A%E6%9C%AC%E8%8E%B7%E5%8F%96%E7%89%B9%E5%AE%9A%E6%97%B6%E9%97%B4%E6%88%B3%E4%B9%8B%E9%97%B4%E7%9A%84%E6%97%A5%E5%BF%97%E4%BB%A5%E5%8F%8A%E6%97%A5%E6%9C%9F.png)
我想使用 shell 脚本从特定时间范围的日志中提取信息。日志中的一行如下所示:
[15:01:27:176][15-10-2015]: testing1-vidya-Thu Oct 15 11:49:27 IST 2015 [15:02:27:178][15-10-2015]: testing2-vidya-Thu Oct 15 11:49:27 IST 2015 [15:10:27:179][15-10-2015]: testing3-vidya-Thu Oct 15 11:49:27 IST 2015 [15:01:27:180][16-10-2015]: testing4-vidya-Thu Oct 15 11:49:27 IST 2015 [15:20:27:181][16-10-2015]: testing5-vidya-Thu Oct 15 11:49:27 IST 2015 [15:02:27:182][16-10-2015]: testing6-vidya-Thu Oct 15 11:49:27 IST 2015 [15:03:27:183][17-10-2015]: testing7-vidya-Thu Oct 15 11:49:27 IST 2015 [15:04:27:184][17-10-2015]: testing8-vidya-Thu Oct 15 11:49:27 IST 2015 [15:05:27:191][17-10-2015]: testing9-vidya-Thu Oct 15 11:49:27 IST 2015 [15:18:27:192][17-10-2015]: testing10-vidya-Thu Oct 15 11:49:27 IST 2015 [15:29:27:193][17-10-2015]: testing11-vidya-Thu Oct 15 11:49:27 IST 2015 [15:03:27:208][18-10-2015]: testing12-vidya-Thu Oct 15 11:49:27 IST 2015 [15:04:27:209][18-10-2015]: testing13-vidya-Thu Oct 15 11:49:27 IST 2015 [15:07:27:210][18-10-2015]: testing14-vidya-Thu Oct 15 11:49:27 IST 2015
我需要以特定的时间间隔提取数据。例如 [2015 年 10 月 17 日] 15:01 至 15:08 之间
[15:03:27:183][2015年10月17日]:测试7-vidya-10月15日星期四11:49:27 IST 2015 [15:04:27:184][2015年10月17日]:测试8- vidya-Thu 10 月 15 日 11:49:27 IST 2015 [15:05:27:191][17-10-2015]:testing9-vidya-Thu 10 月 15 日 11:49:27 IST 2015
我使用了这段代码:
grep -E "^[(15:0[1-8])" | grep '[17-10' filename
我试过这个。我正在获取 2015 年 10 月 17 日的所有数据,包括 15:18 和 15:29。我只需要 15:01 到 15:08 之间的数据。这是否正确,有什么问题吗?
答案1
这对我有用:
grep "\[17-10" filename | grep "15:0[1-8]"