У меня есть CSV-файл, который содержит около 6 миллионов отдельных строк
1,2018-11-25 23:00:26,403,74
1,2018-11-25 23:02:10,406,68
1,2018-11-25 23:04:19,448,108
1,2018-11-25 23:05:26,417,79
1,2018-11-25 23:05:30,378,80
1,2018-11-25 23:05:31,360,78
1,2018-11-25 23:06:45,391,79
1,2018-11-25 23:06:50,432,76
Это время UT C, я живу в Европе UT C + 1. Я написал 'мой первый скрипт AWK: test.awk:
BEGIN { FS=",";OFS="\t"}
{
$2 = mktime(gensub(/[-:]/," ","g",$2))
print
}
Когда я запускаю:
$ awk -f test.awk mark.csv
Это дает вывод:
1 1543183226 403 74
1 1543183330 406 68
1 1543183459 448 108
1 1543183526 417 79
1 1543183530 378 80
1 1543183531 360 78
1 1543183605 391 79
1 1543183610 432 76
Выглядит нормально, но проблема в том, что эпоха на один час раньше
1543183226≠2018-11-25 23:00:26 but 1543183226=2018-11-25 22:00:26
Чтобы решить эту проблему, я смотрю на
strftime([format [, timestamp[, utc-flag]]])
Я почти на месте, но я мог бы воспользоваться некоторой помощью.
Спасибо