Вот типичный способ преобразования названий месяцев в числа с использованием ассоциативного массива, где индекс — это название месяца, а значение — номер месяца. Например, mon["Jul"]
равно 7. Это устанавливается один раз в блоке BEGIN.
awk 'BEGIN {
split("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec",months," ")
for(i=1;i<=12;i++)mon[months[i]] = i }
{ m = $2; d = $3; y = $4; t = $5; gsub(":"," ",t)
print mktime(y " " mon[m] " " d " " t) }'
Затем для каждой строки различные поля перестраиваются -в правильном порядке для mktime()
и объединяются с промежуточными пробелами. Поле времени t
имеет :
, преобразованное в пространство. Приведенное выше просто печатает время эпохи, вам все равно нужно добавить остальные данные.