Другие заинтересованы в аналогичной функциональности , я предлагаю вам проверить упомянутые там инструменты (grc / grcat).
Возможно, вам удастся скрытьсяхотя с магией седа.Я не уверен, что именно вы хотите раскрасить, и при этом я не знаю, как выглядит вывод apt-show-version, но это окрашивает все, что предшествует двоеточию и слову "to":
cat << EOF | sed -e "s/^[^:]*/\x1b[31m&\x1b[0m/g" | sed -e "s/to/\x1b[31m&\x1b[0m/g"
foo: 1 to 2
bar: 3 to 4
quux: 5 to 6
EOF
Вы можете вставить это в терминал и посмотреть, если это то, что вы ищете.По сути, он ищет вхождения регулярных выражений и окружает его цветовыми кодами ANSI:
s/X/Y&Y/g
: замените X на окружение Y во всем входном сигнале (флаг g
)или, цитируя man sed
:
s/regexp/replacement/
Attempt to match regexp against the pattern space. If success‐
ful, replace that portion matched with replacement. The
replacement may contain the special character & to refer to that
portion of the pattern space which matched, and the special
escapes \1 through \9 to refer to the corresponding matching
sub-expressions in the regexp.
^[^:]*
: с начала строки сопоставляйте все, пока не встретите :
\x1b
: Hex 27, escape-последовательность ( см. Здесь! ) [31m
: цветовой код ANSI для красного [0m
: цвет ANSIкод для «возврата к нормальному выводу»
Во всяком случае, этот пост научил меня, что sed
захватывает совпадения в &
;-) Надеюсь, вы тоже кое-что поняли!