我想計算完成時間的autosys工作:如何在Unix中減去兩次獲得完成時間autosys工作
我有下面的工作狀態中的文件:
$cat rough
abc_why_the_infra_dnjob 10/05/2017 10:41:36 10/05/2017 12:52:02 SU
abc_why_the_avloqhk_dnjob 10/05/2017 09:53:36 10/05/2017 10:33:03 SU
abc_why_the_avlogsg_dnjob 10/05/2017 10:33:14 10/05/2017 10:41:01 SU
abc_why_the_avalokin_dnjob 10/05/2017 09:37:36 10/05/2017 09:53:06 SU
abc_why_the_mastercard_dnjob 10/05/2017 13:29:36 10/05/2017 14:21:02 SU
abc_why_the_tcs_dnjob 10/05/2017 03:13:36 10/05/2017 03:22:02 SU
abc_why_the_cogni_dnjob 10/05/2017 09:20:36 10/05/2017 09:37:02 SU
abc_why_the_dnjob 10/05/2017 03:41:36 10/05/2017 04:08:02 SU
我寫了下面的腳本來計算的話:
$ cat sod.sh
#!/bin/bash
number=`cat rough| wc -l`
for i in `seq 1 $number`
do
job_name=`awk -F' ' '{print $1}' rough | sed -n "$i p"`
START_DATE=`awk -F' ' '{print $2}' rough | sed -n "$i p"`
END_DATE=`awk -F' ' '{print $4}' rough | sed -n "$i p"`
START_TIME=`awk -F' ' '{print $3}' rough | sed -n "$i p"`
END_TIME=`awk -F' ' '{print $5}' rough | sed -n "$i p"`
if [[ $START_DATE == $END_DATE ]]
then
T1=`date --date="${END_DATE} ${END_TIME}" "+%s"`
T2=`date --date="${START_DATE} ${START_TIME}" "+%s"`
TIME_DIFFERENCE=`expr $T2 - $T1`
COMPLITION_TIME=`date -d "@${TIME_DIFFERENCE}" "+%H:%M:%S"`
echo $COMPLITION_TIME
fi
done
輸出:
$./sod.sh
03:19:34
04:50:33
05:22:13
05:14:30
04:38:34
05:21:34
05:13:34
05:03:34
我現在的查詢:輸出不正確,你可以建議我。 我期待正確的答案,如: 02:11 >>對於第一份工作
你是否曾經在第一天的23:04:59開始工作,在第二天的00:34:31結束工作?你的腳本效率低下。你可以用一個'awk'腳本來處理數據。 –
No Jonathan,這些作業從6AM IST時間開始,大部分在6PM IST之前完成,而這些作業使用重用文件作業(前一天文件),因此沒有機會長時間運行2天組合。 –
@Jonathan,我只是想知道我們如何能夠在冗長的變電站'expr $ H2 - $ H1','expr $ M2 - $ M1','expr $ S2 - $ S'等旁邊的unix中減去時間實體上.. –