Я пытаюсь передать вывод скрипта (Mocha) другому скрипту. Однако есть одна проблема: Mocha генерирует довольно много анси-экранирующих символов для обновления экрана на лету. Эти символы также отправляются через канал.
Есть ли способ обработать последовательность ANSI так, чтобы вывод был таким же, как окончательный вывод на экран? Я хочу сохранить последовательности выхода цвета, но не ускользает движение курсора.
Изменить: У меня есть частичное решение сейчас (только для Mocha): до сих пор кажется, что Mocha с выходом спецификации (тот, который я использую) генерирует только цветные символы ecape и escape-последовательность CSI 0G
. Экранирующий символ CSI 0G
означает, что курсор должен переместиться обратно к началу строки. Мокко использует это, чтобы полностью перезаписать строку. Поэтому вы можете просто создать регулярное выражение sed, которое будет удалять все строки до этой escape-последовательности: sed 's/^.*\x1b\[0G//g'
. Я все еще ищу полное решение, хотя.