gpt4 book ai didi

linux - 从日志文件中获取最后 30 分钟

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:43 24 4
gpt4 key购买 nike

我有一个包含如下日志的日志文件

1486307866.155 240207 68.146.231.80 TCP_MISS/200 790 CONNECT clients1.google.com:443 - DIRECT/172.217.6.238 -

1486307866.155是unix格式的时间,对应于2017-02-05 07:17:46(格式:Y-m-d H:i:s)

我需要一个 unix 命令,以下列格式提供最近 30 分钟内的日志,并丢弃我不需要的任何详细信息。

2017-02-05 07:17:46|68.146.231.80|clients1.google.com:443

最佳答案

使用 GNU date 和 GNU awk 你可以实现你想要的:

awk -v bt=$(date "+%s" -d "30 minutes ago") '$1 > bt {printf("%s|%s|%s\n", strftime("%F %T",$1), $3, $7)} ' yourfile

解释:

  • date 命令date "+%s"-d "30 分钟前" 获取 30 分钟前的时间戳
  • 通过命令替换功能 $( ... )
  • 将 date 命令替换为其输出
  • awk 选项 -v 将该时间戳作为名为 bt 的变量传递给 awk 脚本
  • 脚本仅打印文件中第一列 ($1) 中的值大于所需格式的 bt 的那些行

关于linux - 从日志文件中获取最后 30 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42054101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com