Linux

通過正則表達式對終端進行全域著色

  • October 7, 2019

我知道很多程序都使用顏色 - (vim、ack、color-ls 等等),但仍然有很多情況下你會被黑白卡住。

有一些腳本會根據正則表達式對輸出進行著色(即“使任何匹配 ‘dog’ 紅色的東西”),但必須使用管道呼叫這些腳本 - 例如:"> cat myfile | color dog red" 這對任何事情都沒有用互動的。

我正在尋找的是掛鉤終端模擬器(或實際執行此操作的終端)並為與給定正則表達式匹配的任何內容著色的東西,獨立於我目前使用的外殼或程序。如果這也適用於 ncurses,那就太棒了。我有太多的單色程序,如果我可以指定一個關鍵字列表以在它們出現或輸入時突出顯示/著色,那就太好了。

我使用可能使用 GNOME 終端的 Guake 控制台,我不知道 GNOME 是否已經具有此功能。

簡短的版本是:為什麼,是的,您可以像任何其他程序一樣通過管道輸出 shell。

從那裡,你可以使用任何你喜歡的東西,比如,說

$ bash | sed "$(echo -e "s@dog@\e[31mdog\e[0m@g; s@more here@more here@g;")"

以為我會添加我的“彩虹”。享受:

for((b=0;$b<8;b++)); do echo -ne "\e[4${b}m4$b : "; \
 for((f=0;$f<8;f++)); do echo -ne "\e[3${f}m3${f}"; done; echo -e "\e[0m"; done

我仍在尋找具有此功能的 linux 終端仿真器,但對於那些在 macOS X 上閱讀本文的人:

  • 獲取iTerm2(如果您在 OS X 上進行大量命令行工作,您無論如何都需要這個),轉到“設置 > 配置文件 > 高級”,然後點擊“觸發器”下的“編輯”。在那裡,您可以使用正則表達式添加觸發器,^.*\[ERROR\].*$並將操作設置為“突出顯示文本”,並將參數設置為“紅色前景”。

引用自:https://serverfault.com/questions/39782