You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sed匹配防火墙日志中前一天日期并替换为当日日期?

解决方法:自动替换防火墙日志中的日期

这事儿处理起来很简单,咱们只需要把日期变量和 sed 结合起来就行,核心是要避开日期里的斜杠和 sed 分隔符冲突的问题,具体步骤如下:

  • 第一步:定义日期变量
    先通过 date 命令把前一天和当天的日期存到变量里,后续调用更方便:

    # 获取前一天的日期,格式和日志完全匹配
    prev_day=$(date -d '-1 day' '+%d/%B/%Y')
    # 获取当日日期
    curr_day=$(date +%d/%B/%Y)
    
  • 第二步:用 sed 执行替换
    因为日期格式里包含斜杠 /,如果还用 / 作为 sed 替换命令的分隔符,会直接触发语法错误。所以咱们换个不冲突的分隔符,比如竖线 |:

    sed "s|$prev_day|$curr_day|g" firewall.log
    

    执行这个命令后,日志里所有匹配到前一天日期的部分都会被替换成当日日期,完全符合你期望的输出效果。

额外提示

如果你想要直接修改原日志文件,可以加上 -i 参数(注意:这个操作会直接覆盖原文件,建议先备份或者先不加 -i 验证输出正确后再使用):

sed -i "s|$prev_day|$curr_day|g" firewall.log

内容的提问来源于stack exchange,提问作者Arun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:20:52