gpt4 book ai didi

linux - 在特定时间戳之间解析文件内容

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:52 24 4
gpt4 key购买 nike

我有一个包含大量信息的日志文件,我只想解析该文件中最近 24 小时内的内容

文件中的每一行都以时间戳开头,例如 Jan 31 13:13:02然后有一条日志消息。

我目前有一个批处理文件可以像这样找到开始和结束时间

start=$(date +"%b  %d %H:%M:%S" --date="-1 day")
end=$(date +"%b %d %H:%M:%S")

然后我希望将这些时间与 grep -c "data_to_find" 一起使用查找特定日志消息的出现次数,以便我稍后可以对此采取行动。

简而言之,我如何考虑时间,然后 grep 内容以获取所述文件中某个字符串的出现次数?

我在 linux 系统上使用 SED、AWK、GREP 等的任何解决方案都没有问题。

最佳答案

如果不编写 shell 脚本就没那么简单(尤其是在未排序的情况下)。

我会尝试这样的事情来获取 1 天前和现在之间的所有行(根据需要进行插值),然后 grep -c 从输出中获取您想要的任何内容。下面的注释假定日期格式类似于 Jan 31 13:13:02(月和日之间有 2 个空格)

#!/bin/bash
yest=$(date -d "1 days ago" '+%s')
today=$(date '+%s')

while read -r line; do
date=
[[ $line =~ ^[[:alpha:]]+[[:blank:]][[:blank:]][0-9]+[[:blank:]][0-9]+':'[0-9]+':'[0-9]+ ]] && date="${BASH_REMATCH[0]}"
[[ -n $date ]] && date=$(date -d "$date" '+%s')
[[ -n $date && $date -ge $yest && $date -le $today ]] && echo "$line"
done < logfile

关于linux - 在特定时间戳之间解析文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21524957/

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