`

如何实现Linux下高亮关键字的tail -f功能

阅读更多

公司内部一哥们发布到邮件列表中的一个小tip,挺有意思,属于程序员的“奇淫技巧”类吧,值得记录一下。

如果你在linux下工作,那用tail -f跟踪一个日志文件的输出内容应该是家常便饭了。

但是,有时你更关心的是一些敏感字词,希望能够在动态跟踪的同时,把这些字词高亮出来,比如日志中的ERROR关键字。

那么,一种思路就是把你tail输出的东西再做一次包装处理,这个很符合linux管道处理的思想。以高亮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本身也支持类似于tail -f的操作,就是在你用less打开一个文件之后,按住SHIFT+F键,这样就直接进入follow的模式了。看上去跟tail -f效果是一致的。利用这点,你想达到高亮的tail -f的效果,就拢共分为以下3步了:

  1. less xxx.log
  2. 中/${key_work}的方式搜索你要高亮的关键字。(即使目前文件中没有也没关系)
  3. SHIFT+F,进入follow模式

结束收工!

分享到:
评论
1 楼 di1984HIT 2013-09-04  
哈哈,学习了,不错。

相关推荐

    window系统 tail -f 功能 界面操作

    实现window系统下 类似 Linux 命令行 tail -f 功能.使用C#语言开发,占用资源小。如有问题可留言

    Python实现tail -f功能

    python学习资料,详细说明了 使用python实现tail -f功能

    DOS下可以使用的tail -f 工具

    DOS下可以使用的tail -f 工具, 下载解压到system32,或者dos环境变量里,系统能找得到的地方即可。

    File-Tail-0.99.3.tar.gz

    File-Tail-0.99.3.tar.gz File-Tail-0.99.3.tar.gz源码包

    linux nohup及tail-f用法

    给大家分享了linux nohup及tail-f用法相关内容,有兴趣的朋友可以参考学习下。

    PHP实现linux命令tail -f

    tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容...接下来通过本文给大家介绍PHP实现linux命令tail -f,需要的朋友参考下

    Tail-f RestCONF Swagger Rev A 2018-09-13.pdf

    tailf(一家Cisco所属公司)出品,专门讲RESTConf/YANG/Swagger的资料 1. Introduction..............................................................................................................3 ...

    win 平台类似linux的tail 工具

    win 平台类似linux的tail 工具

    tail-f:观看文件,如tail-f

    尾f 观看文件,如tail -f安装 npm install --save zo-tail-f用法 const tail = require ( 'zo-tail-f' ) let watcher = tail . watch ( 'test/test.log' ) watcher . on ( 'line' , line => { console . log ( line ...

    k8stail:Kubernetes Pod的tail -f体验

    Kubernetes Pod的tail -f体验 如您所知, kubectl logs只能同时流式传输一个pod。 k8stail使您可以实时监视指定名称空间中的所有pod的日志流或标签,如tail -f 。 目录 选项 发展 作者 执照 要求 Kubernetes 1.3或...

    python实现tail -f 功能

    tailf与tail -f类似:当文件不增长时并不访问文件 tail -f:只跟踪文件内容 tail -F:文件内容与文件名都跟踪 这篇文章最初是因为reboot的群里,有人去面试,笔试题有这个题,不知道怎么做,什么思路,就发群里大家...

    windows tail 工具功能跟LINUX下的类似

    这个是开源的tail工具,有界面的,运行于windows环境。纯鼠标操作,还可以设置关键字过虑与高亮,在日志里面如果出现异常日志时,就可以通过这个功能只显示有问题的行。而不需要被其它正常日志信息阻碍视线

    我使用过的Linux命令之tailf - 跟踪日志文件/更好的tail -f版本

    NULL 博文链接:https://codingstandards.iteye.com/blog/832760

    tail -f for windows 32/64

    解压后将tail.exe 复制到目录:C:\Windows\System32 下即可在cmd里使用tail命令。 解决windows无法使用linux的经典工具.

    node-tail-native:实时读取新行,如'tail - f'

    安装: npm install tailnative或者 git clone git://github.com/whitesheep/node-tail-native.gitcd node-tail-nativenode-gyp configure build用: Tailnative,从 0.3 版本开始,支持line separator new Tail...

    window下的tail命令

    将附件中解压缩到c盘的windows目录下就可以了 D:\>tail/? 一成不变的方法,/?来查看使用帮助 usage: TAIL [switches] [filename]* switches: [-?] display this message ...tail -f xxxx.log 一直查看文件的变化。

    Go-`tail-f`KubernetesPods的体验

    `tail -f` :Kubernetes Pods的体验

    fs-tail:tail -f 类似使用streams2和fs的功能

    node.js 的基于流的tail -f功能。 var FsTail = require ( "fs-tail" ) ; // Available options - defaults are shown. var options = { start : 0 //Start on byte 0 of file. EOFAfter : 500 //emit EOF ...

    linux-tail.txt

    linux tail 命令 参数 用法 自己留用

Global site tag (gtag.js) - Google Analytics