У меня была похожая проблема при преобразовании даты из баз данных RRDTool с использованием rrdfetch, но я предпочел один лайнер, который я использовал с компьютерных дней Apollo.
Данные выглядели так:
localTemp rs1Temp rs2Temp thermostatMode
1547123400: 5.2788174937e+00 4.7788174937e+00 -8.7777777778e+00 2.0000000000e+00
1547123460: 5.1687014581e+00 4.7777777778e+00 -8.7777777778e+00 2.0000000000e+00
Один вкладыш:
rrdtool fetch -s -14400 thermostatDaily.rrd MAX | sed s/://g | awk '{print "echo ""\`date -r" $1,"\`" " " $2 }' | sh
Результат:
Thu Jan 10 07:25:00 EST 2019 5.3373432378e+00
Thu Jan 10 07:26:00 EST 2019 5.2788174937e+00
На первый взгляд, это не выглядит очень эффективным для меня, но такая методология всегда оказывалась достаточно низкой в большинстве случаев, даже для очень больших файлов на компьютере с очень низким энергопотреблением (например, 25 МГц машины NeXT). Да, МГц
Sed удаляет двоеточие, awk используется для печати других различных представляющих интерес команд, в том числе просто выводит переменные awk, а sh или bash выполняет результирующую строку.
Что касается методологии или больших файлов или потоков, я просто пишу первые несколько строк и постепенно собираю одну строку. Выбрось код.