難しいことを言っているのではなさそうですよ
gawk の機能を使うのであれば、こんな感じだろうか?
#! /usr/bin/gawk -f BEGIN { FS = ","; time_difference = gensub(/[[:alpha:]]/, "", "g", ENVIRON["TZ"]) * 3600; } { split($1, arr_date, /\//); year = arr_date[1]; month = arr_date[2]; day = arr_date[3]; split($2, arr_start_time, /:/); start_hour = arr_start_time[1]; start_minute = arr_start_time[2]; start_second = arr_start_time[3]; start_time = mktime(year " " month " " day " " start_hour " " \ start_minute " " start_second); split($3, arr_end_time, /:/); end_hour = arr_end_time[1]; end_minute = arr_end_time[2]; end_second = arr_end_time[3]; end_time = mktime(year " " month " " day " " end_hour " " \ end_minute " " end_second); diff_time = end_time - start_time; print diff_time, "(sec)", strftime("%H:%M:%S", diff_time + time_difference); sum_time += diff_time; } END { print "=========="; print "Total =", sum_time, "(sec)", strftime("%H:%M:%S", sum_time + time_difference); }
某所で読んだコメントの必要ないコードってどんなものだろうかと意識して書いてみたが、awk だと利尿感漂う表現がいくつかできてしまった。