Передайте вывод в стандартный вывод и файл, но удалите цветовые коды для записи в файл - PullRequest
1 голос
/ 25 сентября 2019

У меня есть команда, которая постоянно работает и печатает журнал разных цветов в терминал.И я хотел бы перенаправить вывод этих команд в файл, но также сохранить в терминале.

Пока это можно просто сделать с помощью tee как в:

echo -e "\033[0;31mHello world\033[0m" 2>&1 | tee ./output.txt

Но тут возникает сложная часть:

Я не хочу, чтобы цветовые коды появлялись в файле.И поскольку моя команда выполняется несколько часов подряд, ее нельзя удалить после ее выполнения, но ее необходимо удалить, пока команда еще выполняется.

Если я выполню:

echo -e "\033[0;31mHello world\033[0m" 2>&1 | tee ./output.txt | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"

затем он удаляет цвет для печати на терминале, но цветовые коды все еще печатаются в выходной файл, поэтому мне нужно отменить это.

Любые идеи, как это можно сделать

...