Я пытаюсь форматировать ниже текстовый файл в linux. не могли бы вы предложить лучший способ достичь моего результата.Каков наилучший способ преобразования моего входного текста в вывод в оболочке linux
Введите текст
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 1
[2017-02-03 14:23:45,066] - Message 1
[2017-02-03 14:23:46,066] - Message 1
[2017-02-03 14:23:47,066] - Message 1
Trailer | Trailer Identifer
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 2
[2017-02-03 14:23:45,066] - Message 2
[2017-02-03 14:23:46,066] - Message 2
[2017-02-03 14:23:47,066] - Message 2
Trailer | Trailer Identifer
Вывод Я пытаюсь создать
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 1
Trailer | Trailer Identifer
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 2
Trailer | Trailer Identifer
Заранее спасибо!
Обновление: я не пытаюсь удалить дубликаты здесь, я хочу сохранить запись с самой низкой меткой времени и удалить другие.
Что-то вроде 'awk '! A [$ 0] ++' файл' должен работать (вам придется играть с разделителями полей). Этот вопрос довольно распространен для bash, но я не могу найти точный дубликат. – Aserre
@Aserre: на втором взгляде это не похоже на дубликат того, который вы опубликовали. OP хочет переупорядочить входной файл для показанного вывода. Я предполагаю, вывод будет переформатирован несколькими строками. – Inian
@ Иниан. Да, я не заметил, что временная метка не была точно идентичной во входе OP. Кроме того, если сообщение 1 и сообщение 2 не уникальны, нужно будет обрабатывать сообщения журнала в соответствии с блоками «Заголовок/трейлер». – Aserre