Багато програм, які генерують кольоровий вихід, виявляють, чи пишуть вони на TTY, і вимикають кольори, якщо їх немає. Це пояснюється тим, що кольорові коди дратують, коли ви хочете лише зафіксувати текст, тому вони намагаються "зробити правильно" автоматично.
Найпростіший спосіб зафіксувати кольоровий вихід з такої програми - це сказати йому записати кольори, навіть якщо він не підключений до TTY. Вам доведеться прочитати документацію програми, щоб з’ясувати, чи є у неї така опція. (наприклад, grepє --color=alwaysваріант.)
Ви також можете використовувати expectсценарій, unbufferщоб створити такий псевдо-tty:
echo barney | unbuffer grep barney | sed -n 1,$\ p
lessможе приймати кольоровий текст (приємно :) ... наприклад:tree -C ~/ |less -Rабоls -lR --color=always . |less -R