У меня есть следующая команда awk и выходные данные для преобразования файла DAT в CSV с определенной FS, но я хотел бы, чтобы поля, содержащие значение даты и времени, были разделены на два отдельных поля плюс добавление: 00 секунд в формате времени.
команда awk:
awk 'BEGIN{FS="\024"; OFS = ","; ORS = "\n"} {gsub(/\376/, "\"", $0); print $1, $2, $3, $4, $5}' input.dat > output.csv
вход
þNUMþþDATE CREATEDþþDATE SENTþþDATE MODIFIEDþþDATE RECEIVEDþ
þNUM00000001þþþþ9/11/2017 12:00 AMþþ6/16/2018 12:00 AMþþþ
þNUM00000002þþþþ5/2/2016 12:00 AMþþ6/16/2018 12:00 AMþþþ
выход:
"NUM","DATE CREATED","DATE SENT","DATE MODIFIED","DATE RECEIVED"
"NUM00000001","","9/11/2017 12:00 AM","6/16/2018 12:00 AM",""
"NUM00000002","","5/2/2016 12:00 AM","6/16/2018 12:00 AM",""
желаемый результат:
"NUM","DATE CREATED","CREATED TIME","DATE SENT","SENT TIME","DATE MODIFIED","MOD TIME","DATE RECEIVED","RECEIVED TIME"
"NUM00000001","","","9/11/2017","12:00:00 AM","6/16/2018","12:00:00 AM","",""
"NUM00000002","","","5/2/2016","12:00:00 AM","6/16/2018","12:00:00 AM","",""
Можно ли добавить код для каждого поля для выполнения разделения? Обратите внимание, что некоторые строки / строки могут иметь значение NULL для даты / времени.