Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算特定字符串的预计剩余时间,bash脚本_Bash_Date_Time - Fatal编程技术网

计算特定字符串的预计剩余时间,bash脚本

计算特定字符串的预计剩余时间,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

我正在寻找一种优雅的方法来计算程序完成所需的估计时间。我有一个log.txt文件,其中写入了所有类型的参数,到目前为止完成了哪些步骤。当光子发射阶段开始时,写入迄今为止达到的日期、时间和百分比,例如

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”