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

如何提取日志中最后一次出现的datetime后的19位日期时间串?

提取日志中最后一次出现的目标日期时间

AWK 方案

用AWK全程处理,逐行扫描并记录最后一次匹配的日期:

awk '{
    while (match($0, /datetime":"([0-9-T:.]{19})/, m)) {
        last_dt = m[1]
        $0 = substr($0, RSTART + RLENGTH)
    }
} END { print last_dt }' logfile.txt
  • 每次匹配到datetime":"后,提取后续19位日期并更新last_dt,同时截断当前行已处理的部分继续扫描;最终输出最后记录的日期。

SED 方案

结合 tail 的简易写法

先提取所有符合规则的日期,再取最后一行:

  • .*datetime":"会匹配每行内最后一次出现的前缀,提取对应的日期;tail -1直接取所有结果中的最后一项,即日志里最后出现的目标日期。

纯 SED 写法(无需额外工具)

通过循环替换保留最后一个匹配项:

s/(.*)datetime":"([0-9-T:.]{19})/\1/
ta
s/.*//
s/^/\2/' logfile.txt
  • 循环删除最后一个匹配项及之前的内容,直到无法匹配;最后保留的就是最后一次出现的日期字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:35:31