【小而優】 如何實現 tail -f 動態顯示日志時高亮顯示關鍵字


前言

如果你在linux下工作,那用tail -f跟蹤一個日志文件的輸出內容應該是家常便飯了。

但是,有時你更關心的是一些敏感字詞,希望能夠在動態跟蹤的同時,把這些字詞高亮出來,比如日志中的 ERROR 關鍵字。

那么,一種思路就是把你tail輸出的東西再做一次包裝處理,這個很符合linux管道處理的思想。

tailf

以高亮Log中的 ERROR 為例,你可以這樣:

tail -f xxx.log | perl -pe 's/(ERROR)/\e[1;31m$1\e[0m/g'

其中,xxx.log是你要跟蹤的文件。這里假設了你的Linux的PATH中有perl。perl在這里干的事情,就是通過命令行的方式進行動態的替換ERROR字符串的操作,替換過程中,主要使用了Linux的console_codes的語法結構。(具體關於console_codes的細節,可以通過man console_codes進行了解)這里,\e主要進行轉移說明。

如果你手頭有server log之類的日志,試試上面的命令,是不是把ERROR全部標紅了。

利用這個原理,你完全可以按照你所需要的顏色高亮你感興趣的輸出,具體的顏色說明,可以在man console_codes中查到。

less

另外,less本身也支持類似於tail -f的操作,就是在你用less打開一個文件之后,按住SHIFT+F鍵,這樣就直接進入follow的模式了。看上去跟tail -f效果是一致的。利用這點,你想達到高亮的tail -f的效果,就攏共分為以下3步了:

  • less xxx.log
  • 中/${key_work}的方式搜索你要高亮的關鍵字。(即使目前文件中沒有也沒關系)
  • SHIFT+F,進入follow模式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM