annotate-outputСкрипт из Debian - х devscriptsпозволяет делать это выборочно:
$ annotate-output ls -ld /test
14:54:22 -: Started ls -ld /test
14:54:22 E: ls: cannot access /test: No such file or directory
14:54:22 -: Finished with exitcode 2
Во втором столбце указаны stdout и stderr с Oи Eсоответственно.
Есть несколько предостережений, главное из которых было отмечено в других ответах: вы не можете сделать это после факта. Ни оболочка, ни терминал не знают, как произвольная программа использует свои файловые дескрипторы, хотя оболочка отвечает за их первоначальную настройку.
Этот метод использует fifo, запись в fifo может вести себя иначе, чем запись в tty, и запись в два разных fifo определенно отличается (потенциальные проблемы синхронизации / чередования). Кроме того, он не подходит для интерактивного использования, например, annotate-output bashэто не очень хороший план, но он полезен для многих других целей. Существует множество примеров сценариев и функций оболочки в ответах на связанные вопросы о раскрашивании stdin / stdout / stderr. Самый надежный из них - это stderrd, который использует модификацию времени выполнения (большинства) программ для изменения данных, записанных в stderr.
На этот вопрос, на который ссылается Anko, есть хорошие ответы по этой связанной теме: раскраска вывода stdout / stderr:
могу ли я настроить свою оболочку для печати STDERR и STDOUT разными цветами?