`

如何实现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  
哈哈,学习了,不错。

相关推荐

    PHP实现linux命令tail -f

    需要注意的是,上述代码仅实现了基本的`tail -f`功能,没有包含像原生`tail -f`那样的高级特性,如高亮关键字、动态调整显示行数等。若要增强功能,可以添加更多的参数处理和逻辑判断。 在实际应用中,这种PHP实现...

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

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

    Tail for Win32

    Tail for Win32 4.2.12.1,Linux下有一个tail程序,可以用来动态显示变化中的日志文件内容,这个...3)原来的英文版本显示中文时不能正确地确定关键字的位置,导致关键字高亮的功能在中文下有误,我已经解决了这个问题

    log file tailer

    "日志文件尾随者"(log file tailer)是一个工具,它的功能类似于Linux系统中的`tail -f`命令。这个工具的主要作用是实时监控和跟踪日志文件,当文件有新的内容追加时,它能立即显示这些新内容,这对于系统监控、...

    Windows上文件内容动态查看工具

    总之,“Windows上文件内容动态查看工具”通过Java环境实现了类似Linux `tail -f`命令的功能,提供了一种便捷的方式,让用户在Windows环境下实时查看和跟踪文件内容的变更,尤其适用于需要频繁查看日志文件的场景。...

    Tail-开源

    3. **跨平台**:由于开源特性,Tail可能支持多种操作系统,比如Windows、Linux和macOS,使得用户无论在哪种环境下都能享受到同样优秀的功能。 4. **持续发展**:开源软件的生命力往往更长久,因为开发者和用户的...

    Linux学习笔记之常用命令.pdf

    - `rm [选项] 文件或目录`:删除文件或目录,`-f` 强制删除,`-i` 提示确认,`-r` 递归删除。 - `mv [选项] 源 目标`:移动文件或目录,相当于改名。 8. **命令路径查找**: - `which 命令`:显示命令的完整路径...

    笔试题+++2015

    - `tail -f a.log`:此命令用于实时查看名为`a.log`的日志文件的最新内容。其中`tail`是一个常用的Linux/Unix命令,用来显示文件的最后几行内容,默认情况下显示文件的最后10行。当添加`-f`参数后,`tail`会持续地...

    multitail.aix6.1.tar.gz

    例如,`-c`选项可以指定颜色方案,`-s`用于设置滚动速度,`-f`表示跟随文件的末尾,而`-i`则可以添加新的日志文件到当前的Multitail会话中。更高级的用法还包括使用正则表达式进行过滤、通过管道和重定向与其他命令...

    windows日志调试baretail

    "BareTail"是一款高效且直观的日志查看器,它模仿了Linux系统的`tail`命令,专为Windows环境设计,使得实时监控和追踪文件内容变得简单。这款工具在Web开发过程中尤其有用,因为它可以帮助开发者快速定位和理解应用...

    hoowintail

    由于Windows默认没有提供类似于Linux的tail命令来实时查看文件内容,hoowintail便填补了这一空白。通过这个工具,用户无需频繁刷新文件或打开大型日志文件,就可以轻松跟踪日志流,提高工作效率。 具体操作步骤如下...

    ajax dynamic logfile parser-开源

    通过这个工具,用户可以方便地在浏览器中查看、搜索、筛选和高亮显示日志文件中的关键信息,无需直接登录到服务器或者使用命令行工具,如`less`, `grep`, 或者`tail`等。这一特性使得远程管理服务器变得更加便捷,...

Global site tag (gtag.js) - Google Analytics