Как я могу добавить символ для каждого вывода команды?

Я запускаю команды, которые я хочу специально сгруппировать по каждой команде, как показано в примере ниже. Пробная печать с помощью echo -e '| $line' echo -e '| $line' но это влияет только на команды, которые выводят текст, содержащийся в файле.

Задний план

Первоначально я видел видео, которое показывало команды терминала, которые были несколько сгруппированы с использованием '|' как образец ниже. Im пытается настроить или сделать функцию для моих файлов .bashrc / .bash_profile чтобы все выходы имели '|' символ в начале каждой строки вывода.

Обсуждение также можно найти здесь . Вероятно, я сделаю функцию для STDERR и STDOUT (точно так же, как упоминалось здесь ).

пример

 +>system:~/sample | No command 'sample' found, did you mean: | Command 'yample' from package 'yample' (universe) | Command 'ample' from package 'ample' (universe) | sample: command not found +>system:~/sudo apt-get update | [sudo] password for system: | Ign http://dl.google.com stable InRelease | Hit http://dl.google.com stable Release.gpg | Ign http://security.ubuntu.com trusty-security InRelease | yadda yadda ... +>system:~/ 

Вы можете попробовать выполнить прокладку через команду sed которая заменяет начало строки ( ^ ) любым префиксом, который вы хотите ( | ), например:

 some_command | sed 's/^/| /' 

Это будет работать для более простых команд, но не будет работать, поскольку более сложные приложения позиционируют курсор некоторыми нетривиальными способами и будут также задерживать вывод нескольких команд (поскольку они переключаются с буферизации строк на использование гораздо большего буфера, видя, что их стандартный вывод равен не терминал).

Я обычно рекомендую отказаться от этого подхода и вместо этого настроить приглашение оболочки, которое выделяется (использует жирный, курсив, цвет, цвет фона, специальные символы Юникода, что бы ни происходило с вами).