【发布时间】:2018-05-21 22:06:48
【问题描述】:
我有一个防火墙日志,其时间戳格式为date +%d/%B/%Y。
$ date +%d/%B/%Y
21/May/2018
日志线(输入):
#cat firewall.log
1.5.5.1 - - [20/May/2018:00:00:00 +0000] "GET blah.com HTTP/1.1" 304 0 304 0 0 0 299 262 293 227 0
我了解如何每天使用sed 更改时间格式。
sed "s/\[20\/May\/2018/\[21\/May\/2018/g" firewall.log
我想用 unix 日期模块定期更改日志上的最新时间戳
$date +%d/%B/%Y
21/May/2018
我也知道如何获取上一个日期
$ date -d '-1 day' '+%d/%B/%Y'
20/May/2018
如何匹配日志中前一天的日期并使用 (21/May/2018) sed 替换为最近一天的日期戳?
预期输出:
$sed "s/previous_day_match/latest_day_match/g" firewall.log
1.5.5.1 - - [21/May/2018:00:00:00 +0000] "GET blah.com HTTP/1.1" 304 0 304 0 0 0 299 262 293 227 0
【问题讨论】:
-
如果您也可以使用代码标签在您的帖子中发布输入和预期输出示例会更好。
-
为什么要更改日志:)