Я знайшов хороший спосіб зробити це. У моїй системі довгі лінії виведення посипаються "^ M" (пробіл, за яким йде повернення каретки). "^ M" можна добре замінити нульовим символом "^ @", який не відображається взагалі, коли ви котять файл.
Я також захоплюю синхронізацію, тому для того, щоб відтворити файл відмінно, я не можу просто видалити "^ M" повністю за допомогою команд, наведених нижче (тому що скриптплейт розраховує байти):
tr '\r' '\0' | sed 's/ \x0//g'
Я виконую команду сценарію так:
script -t -f session.log 2>timing
Отже, те, що я роблю пізніше, це:
cat session.log | tr '\r' '\0' > typescript
scriptreplay -t timing | sed 's/ \x0//g'
Перше редагування (до відтворення) зберігає кількість байтів у файлі.
Друге редагування (після відтворення) позбавляє білого простору у випадкових місцях.
(Зауважте, що за замовчуванням scriptreplay шукає вхідний файл з назвою "typecript", тому я не надав його після "timing".)