為終端的所有輸出著色

為終端的所有輸出著色

有沒有辦法讓我的終端的所有輸出都以個人化的方式著色?例如:如果我發出命令:sudo apt-get update- 我將得到一列文本,我想要的是一種將文本中存在“錯誤”之類的單詞著色為紅色的方法,將“完成”或“完成”之類的任何單字著色為綠色」。

這只是一個例子,我知道這可能會搞砸其他程式的彩色輸出,只是好奇這是否可能。

我目前正在使用 ZSH,但接受每個終端模擬器的答案。

答案1

您可以將sed單字邊界分隔的“ERROR”、“DONE”和“FINISHED”字串替換為包含在ANSI 顏色轉義序列(為了方便起見,您可以為命令添加別名~/.bashrc;正如您所看到的,這在Zsh 中有效,但由於它是解釋轉義序列的終端,因此它可以在ANSI / VT100 相容終端中運行的任何shell中工作):

sudo apt-get update |& sed 's/\bERROR\b/\x1B[1;31m&\x1B[0m/; s/\bDONE\b/\x1B[1;32m&\x1B[0m/; s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/'
sudo apt-get update |&
    sed '
        s/\bERROR\b/\x1B[1;31m&\x1B[0m/
        s/\bDONE\b/\x1B[1;32m&\x1B[0m/
        s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/
    '

螢幕截圖

相關內容