Удалите коды ANSI при сохранении вывода скрипта - PullRequest
5 голосов
/ 10 июня 2011

Некоторые программы создают красивые индикаторы прогресса и прочее, используя escape-последовательности ANSI. Это мило.

Что не очень хорошо, так это то, что если я помещаю вывод такого рода программы в файл и затем пытаюсь просмотреть его, он заполнен странными escape-последовательностями.

Есть ли способ убрать все коды ANSI при регистрации?

Я обычно записываю вывод скрипта так:

./script >> /tmp/output.log

1 Ответ

7 голосов
/ 10 июня 2011

Попробуйте:

$ TERM=dumb ./script >> /tmp/output.log

Если это не сработает, это потому, что коды ANSI были жестко запрограммированы в скрипте, поэтому нет простого способа их удалить. Если это так, то это потому, что он делает правильные вещи, делегируя такие вещи, как симпатичный вывод, на libncurses или подобное, чтобы при изменении переменной TERM библиотека больше не отправляла эти коды.

...