Я видел много ответов, но ни один не решил мою проблему.Вот мой штраф
cat run_time
Done City Start_time End_time
Yes Chicago 10:16:51,14-Dec-2018 10:19:38,14-Dec-2018
Yes Atlanta 10:12:58,14-Dec-2018 10:20:58,14-Dec-2018
No Minnetonka 10:16:38,14-Dec-2018 10:21:50,14-Dec-2018
Yes Hopkins 10:22:20,14-Dec-2018 10:18:11,14-Dec-2018
Когда я могу вычислить вручную, все работает.
TO=$(date -d "10:16:58 14-Dec-2018" +%s)
TAL=$(date -d "10:16:50 14-Dec-2018" +%s)
TOTAL=$(( "$TO" - "$TAL" ))
echo $TOTAL
8
Однако я получаю сообщение об ошибке всякий раз, когда я пытаюсь интегрироватьв функцию awk.
Сначала я удалил запятую между временем и датой.
sed -i -e 's/,/ /g' run_time
Done City Start_time End_time
Yes Chicago 10:16:51 14-Dec-2018 10:19:38 14-Dec-2018
Yes Atlanta 10:12:58 14-Dec-2018 10:20:58 14-Dec-2018
No Minnetonka 10:16:38 14-Dec-2018 10:21:50 14-Dec-2018
Yes Hopkins 10:22:20 14-Dec-2018 10:18:11 14-Dec-2018
При запуске следующей команды awk отобразится информация:
awk 'BEGIN { OFS = "\t" } NR == 1 { $7 = "Time_diff" } NR >= 2 { $7 = "$3,$4" - "$5,$6" } 1' < run_time|column -t
Done City Start_time End_time Time_diff
Yes Chicago 10:16:51 14-Dec-2018 10:19:38 14-Dec-2018
Yes Atlanta 10:12:58 14-Dec-2018 10:20:58 14-Dec-2018
No Minnetonka 10:16:38 14-Dec-2018 10:21:50 14-Dec-2018
Yes Hopkins 10:22:20 14-Dec-2018 10:18:11 14-Dec-2018
Моя цель - вычислить разницу во времени и добавить в поле Time_diff
.