У меня есть программа, которая использует printf
некоторые tput
смешанные в ней, и я хотел бы направить вывод на стандартный вывод, а также файл. Я бы предпочел использовать, sed
так как я не хочу никаких ненужных зависимостей от моего сценария. Вот что у меня так далеко.
printf "\n$(tput setaf 6)| $(tput sgr0)$(tput setaf 7)Sourcing files...\033[m\n" | tee install.log
Единственная проблема с этим - мой файл журнала - получение всего цветного вывода как такового ...
^[[36m| ^[(B^[[m^[[37mSourcing files...^[[m
Я бы хотел, чтобы это было просто | Sourcing files...
bash
shell-script
bash-script
iamnewton
источник
источник
sed
параметры не работают.Ответы:
В соответствии с удалением цветов из вывода , ваша команда должна быть:
Для удобства вы можете также создать псевдоним в
/etc/profile
[Редактировать]
С данным выводом вы можете проверить это самостоятельно:
Выход:
источник
-r
флаг не работает на Mac BSD, поэтому я попытался использовать-E
его, похоже, он был бы наиболее похожим, и он все равно выводится в лог-файл как таковой ...^[36m| ^[(B^[[m^[[37mSourcing files...^[[m
Он также возвращается, как| ^[(BSourcing files...
на моем Linux-боксе.|xxd
и вашегоTERM
env. вар.TERM
=>xterm
.0000000: 1b5b 316d 1b5b 3333 6de2 9aa0 2020 5761 .[1m.[33m... Wa 0000010: 726e 696e 673a 201b 2842 1b5b 6d4e 6f20 rning: .(B.[mNo 0000020: 2f55 7365 7273 2f61 7077 2f2e 6261 7368 /Users/apw/.bash 0000030: 2066 6f75 6e64 2e21 0a found.!.
stripcolors
функцию, потому что Mac OS X не понимает-r
опцию дляsed
команды. Я предполагаю, что вы находитесь в каком-то дистрибутиве Linux?