У меня есть странное сочетание буквенных, видимых и экранированных управляющих символов в дампе данных, который мне нужно очистить (желательно с sed ), например ^ A , ^ B , \ N (буквально) и видимые символы новой строки. Мне нужно очистить файл так, чтобы видимые символы новой строки остались нетронутыми, заменить каждый ^ A символом табуляции и удалить каждую ^ B \ N ^ B \ N (которая следует за каждым значением времени unix в данных например, 13068505731812510).
Вот как выглядит содержимое, используя less
в команде оболочки (в оболочке символы ^ A и ^ B имеют темный фон для обозначения контрольных символов ):
^ A guid ^ A unix-time ^ B \ N ^ B \ N ^ A 4 ^ A 192.168. 21.136 ^ A 7.0 ^ A IE ^ A 8 ^ A guid ^ A WinNT ^ A ... (видимый перевод строки)
Или буквальный пример ...
... ^A40C4595C-0B9D-46B7-8214-3D9CE2B5F057^A13071154505579551^B\N^B\N^A4^A192.168.21.136^A7.0^AIE^A8^AE6979203-F58B-4D20-9D66-7F5369BF9E32^AWinXP^A ...
Пока что экранирующие последовательности, которые я кормил sed , не дали ожидаемого результата. Кто-нибудь знает магические побеги, необходимые для того, чтобы все это произошло за как можно меньшее количество проходов? (Есть много концертов файлов, и время имеет значение.) Спасибо! Бонусные баллы, если я смогу конвертировать цифры времени Unix в удобочитаемое время за один проход.