我的脚本(在 bash 中)旨在完成这项工作:
从文件中获取开始和停止时间,
file_A
. 时间范围通常为 3-24 小时。根据
[start_time, stop_time]
got from的这个时间窗口file_A
,我需要在总共 10k 个日志文件中找到特定的文件(并且会随着实验运行而增加),每个记录大约 30 分钟。也就是说,我必须在 10k 个日志文件中找到 6-50 个日志文件。确认正确的日志文件后,我需要打印出有趣的数据。
步骤 1) 和 3) 都可以,我已经做到了。现在,我被困在第 2 步),尤其是在两个地方:
(一个)。自日志文件命名为时间以来,如何通过名称有效地选择合适的文件。每个名为的日志文件log_201305280650
意味着 2013 / May 28 / 06:50。也就是说,根据从file_A获取的时间,我需要通过名字来确认对应的日志文件,这是时间的暗示。
(b)。选择文件后,从该文件中读取时间在时间窗口内的项目(如温度、压力等)。因为每个文件记录30分钟,这意味着这个文件中的一些条目不能满足时间窗口。
例如,
从步骤 1) 开始,我的时间窗口设置为 [201305280638, 201305290308]。
从步骤 2),我知道日志文件 (log_201305280650) 包含 201305280638 的开始时间。所以我需要读取 201305280638 以下条目的所有温度和压力。
the log files name is log_201305280650 (= 2013 / May 28 / 06 :50)
Time temperature pressure ...
201305280628 100, 120 ...
201305280629 100, 120 ...
... ... ...
201305280638 101, 121 ...
201305280639 99, 122 ...
... ... ...
201305280649 101, 119 ...
201305280650 102, 118 ...
我的假脚本如下。
get time_start from /path/file_A
get time_stop from /path/file_A
for file in /path_to_log_files/*
do
case "$file" in
*)
If [[log file name within time window of (time_start, time_stop)]]; then
loop over this file to get the entry whose time is just within (time_start, time_stop)
read out temperature and pressure etc.
fi
esac
done