我这里有个需求是将服务器日志按时间导出。服务器日志是按月分的,所有的都导出不现实,十几个G完全没搞头。所以就需要筛选时间来进行导出。我使用的是sed命令,例:sed -n ‘/2022-03-30 01:00:00.582/,/2022-03-30 23:59:59.740/p’ /var/log/202203.log > /var/log/0330.log。额,我发现里面模糊搜索不行的,相当于将所有的日志copy一遍。所以我用了最原始的方法。用cat命令筛选开始时间,如cat /var/log/202203.log | grep ‘2022-03-30 01:00:’,然后再用cat命令筛选结束时间。如cat /var/log/202203.log | grep ‘2022-03-30 23:59:5’,然后将这里选出的开始时间和结束时间填上。因为开始时间和结束时间使用sed命令的话必须得存在
[root@localhost ~]# sed -n '/2022-02-15 01:00:00.544/,/2022-02-15 23:59:57.626/p' /var/log/202202.log > /var/0215.log
[root@localhost ~]# sed -n '/2022-03-23 01:00:00.043/,/2022-03-23 23:59:56.914/p' /var/log/202203.log > /var/0323.log
[root@localhost ~]# sed -n '/2022-03-30 01:00:00.582/,/2022-03-30 23:59:59.740/p' /var/log/202203.log > /var/0330.log