У меня большое разделенное файловое пространство txt, которое я разделил на 18 небольших файлов (каждый со своим количеством столбцов). Это разделение основано на разделителе, то есть каждый раз, когда отметка времени достигает полуночи. Таким образом, в итоге я получу 18 файлов в форме (обратите внимание, игнорируйте тире и каналы, я использовал их для улучшения читабельности):
file1
time ----------- valueA - valueB
12:00:00 AM | 54.13 | 239.12
12:00:01 AM | 51.83 | 119.93
..
file18
time ---------- valueA - valueB - valueC - valueD
12:00:00 AM | 54.92 | 239.12 | 231.23 | 882.12
12:00:01 AM | 23.92 | 121.92 | 201.23 | 892.12
..
После разделения файла я затем выполняю некоторую обработку каждого из файлов с помощью AWK, так что вкратце есть 2 этапа: «этап разделения» и «этап обработки».
К сожалению, временная метка, содержащаяся в большом текстовом файле, имеет один из двух форматов. Либо желательный 24-часовой формат «00:00:01», либо нежелательный 12-часовой формат «12:00:01 AM».
В результате я пытаюсь преобразовать все форматы в 24 часа, и я не уверен, как это сделать. Я также не уверен, стоит ли пытаться делать это на стадии разделения с использованием bash или на стадии процесса с использованием AWK. Я знаю, что следующая функция преобразует 12 часов в 24 часа
'date --date="12:00:01 AM" +%T'
однако, я не уверен, как включить это в мой сценарий оболочки, если я использую 'while read line' на 'split split' или мне нужно выполнить преобразование времени в AWK (если возможно?) В «этап обработки».