计算特定字符串的预计剩余时间,bash脚本
我正在寻找一种优雅的方法来计算程序完成所需的估计时间。我有一个log.txt文件,其中写入了所有类型的参数,到目前为止完成了哪些步骤。当光子发射阶段开始时,写入迄今为止达到的日期、时间和百分比,例如计算特定字符串的预计剩余时间,bash脚本,bash,date,time,Bash,Date,Time,我正在寻找一种优雅的方法来计算程序完成所需的估计时间。我有一个log.txt文件,其中写入了所有类型的参数,到目前为止完成了哪些步骤。当光子发射阶段开始时,写入迄今为止达到的日期、时间和百分比,例如 10/11/2020 02:48:29.079 (12.3 GB) Launched primary emission photon packets: 43.0% 其思想是使用第一个和最新的日期和百分比,然后简单地应用线性缩放,正确地考虑到日期的变化(这可能是任意的)。时间以日/月/年hh:m
10/11/2020 02:48:29.079 (12.3 GB) Launched primary emission photon packets: 43.0%
其思想是使用第一个和最新的日期和百分比,然后简单地应用线性缩放,正确地考虑到日期的变化(这可能是任意的)。时间以日/月/年hh:mm:ss格式给出
10/11/2020 02:30:24.669 (12.3 GB) Launched primary emission photon packets: 0.2%
10/11/2020 03:01:12.047 (12.3 GB) Launched primary emission photon packets: 73.1%
p2=73.1%
p1=0.2%
t2=10/11/2020 03:01:12.047
t1=10/11/2020 02:30:24.669
解决后,可获得:
t_光洁度=t(100%)=(t2-t1)/(p2-p1)100%+(p2t1-p1*t2)/(p2-p1)
最后,剩下的时间是t_left=t_finish-t2
输出应以秒为单位。下面是log.txt文件的一部分,其中包含达到的时间和百分比。这个问题的解决方案对于未来的时间和日期计算非常有用
......
......
10/11/2020 02:30:18.006 (12.3 GB) Starting primary emission...
10/11/2020 02:30:18.006 (12.3 GB) Launching 3e7 primary emission photon packets
10/11/2020 02:30:24.669 (12.3 GB) Launched primary emission photon packets: 0.2%
10/11/2020 02:30:31.385 (12.3 GB) Launched primary emission photon packets: 0.4%
......
......
10/11/2020 03:01:12.047 (12.3 GB) Launched primary emission photon packets: 73.1%
......
......
使用(GNU)date
和bc
怎么样
#/usr/bin/env bash
p2='73.1'
p1='0.2'
t2='10/11/2020 03:01:12.047'
t1='10/11/2020 02:30:24.669'
epoch2=“$(日期-d”$t2”+%s)”
epoch1=“$(日期-d”$t1+%s)”
end_epoch=“$(printf'(%s-%s)/(%s-%s)+(%s*%s-%s*%s)/(%s-%s)\n'$epoch2”“$epoch1”“$p2”“$p1”“$p2”“$epoch1”“$p1”“$epoch2”“$p2”“$p1”“$bc)”
printf“估计结束时间:%s(%s)\n”“$(日期-d“@$end\u epoch”)”“$end\u epoch”