【问题标题】:tail -f OR less +F how to highlight new linestail -f OR less +F 如何突出显示新行
【发布时间】:2017-03-21 11:08:00
【问题描述】:

有什么方法可以突出显示,即加粗,或为上次更改后新添加的行着色?

例如,我正在查看一个日志文件,其中包含 PHP 错误日志中的多个类似错误(不同的行或函数名称等)...而且我必须查看一组错误结束和另一组错误开始的时间戳(页面刷新)

如果有一种方法可以突出显示,但仅是最后添加的行,那将非常有帮助。

我正在寻找在控制台中在 macOS 和 Linux 上运行的解决方案。

【问题讨论】:

  • 这没有突出显示,但是我用来知道日志文件中的新行的方法是执行tail -f,然后手动给出几个回车,这样新行就很容易识别在那些回车之后。

标签: linux bash console


【解决方案1】:

查看watch 命令(如果您的系统有)。命令:

watch -d tail /your/file/here

将显示文件并逐个字符突出显示差异。请注意,在这种情况下,您不想使用 -f 选项。

Ubuntu 有它。对于 OSX,如果您安装了homebrew,则可以使用brew install watch;如果您使用ports,则可以使用sudo ports install watch

另一个好处是它适用于任何输出随时间变化的命令。我们甚至将它与ls -l 一起使用来观察备份和文件压缩的​​进度。

【讨论】:

  • 您的问题找到答案了吗?
【解决方案2】:

“tail”本身并没有提供一种严肃的方式来做到这一点。但是仔细看看“multitail”:

https://www.vanheusden.com/multitail/

对于 Mac OSX:

http://macappstore.org/multitail/

【讨论】:

  • 谢谢,我已经尝试过 multitail 但它默认不提供这种功能。到目前为止,我找到了一些解决方法。在 multitail 中输入带时间的 throws 分隔符,但这是手动操作,我正在寻找更自动化的东西。
【解决方案3】:

开启grep的行缓冲模式。

  1. 使用尾巴

    tail -f fileName | grep --line-buffered my_pattern
    
  2. 少用

    less +F fileName | grep --line-buffered my_pattern
    
  3. 使用 watch & tail 突出显示新行

    watch -d tail fileName 
    

注意:适用于基于 linux 的系统。

【讨论】:

    猜你喜欢
    • 2013-05-08
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 2017-05-10
    • 1970-01-01
    相关资源
    最近更新 更多