grep在 EOL(行尾字符)上

grep在 EOL(行尾字符)上

我花了几个小时使用新的 4K 电视和 nVidia GPU 来尝试获得尽可能高的刷新率。刚才我设置了一个相对简单的grep设置来显示连接的显示器、分辨率和刷新率。

结果xrandr --current | grep -e " connected" -A1

grep 已连接.png

我想突出显示当前刷新率(用 表示*)。当connected在第一行突出显示时,它在视觉上会分散注意力并且多余。如果我grep第二次*在第二行突出显示,则带有输出名称的第一行会消失。这没有帮助。

我怎样才能将初始grep颜色高亮从第一行移到第二行grep并仍保留第一行?

答案1

grep在 EOL(行尾字符)上

第二次运行grep以突出显示不同的单词会导致没有该单词的所有其他行消失。秘诀grep或者EOL 字符(\$或简称$)。完整解释如下:

新的命令变为:

  • xrandr --current | grep -e " connected" -A1 | grep -E '\*|$'

它返回的是:

grep 刷新率.png

  • $表示搜索每行上的 EOL(行尾)字符。这意味着第一行中的每一行grep都会重新出现在第二行中grep。EOL 字符不可见,因此您不会在每行末尾看到突出显示。
  • 因为第二个grep是搜索*(控制字符),所以需要在前面加上\。通常情况下,您只需使用word|$进行搜索,而不是\word|$。星号(或 splat)*字符是个例外。请参阅转义元字符

奖励答案 1

通过突出显示 Hz 值来增强输出

使用来自的答案:在 grep 中匹配十进制数. 除了 之外,您还可以突出显示实际频率*

此命令:

xrandr --current | grep -e " connected" -A1 | grep -E '[0-9]+\.[0-9]+\*|$'

给你这个:

grep 所有数字.png


奖励答案 2

使用不同的高亮颜色增强输出

默认的红色高亮颜色可能在您的显示器上不太显眼。我知道它在我的显示器上有点褪色gnome-terminal。从这个彩色 grep博客你可以创建这些别名:

alias    grey-grep="GREP_COLOR='1;30' grep --color=always"
alias     red-grep="GREP_COLOR='1;31' grep --color=always"
alias   green-grep="GREP_COLOR='1;32' grep --color=always"
alias  yellow-grep="GREP_COLOR='1;33' grep --color=always"
alias    blue-grep="GREP_COLOR='1;34' grep --color=always"
alias magenta-grep="GREP_COLOR='1;35' grep --color=always"
alias    cyan-grep="GREP_COLOR='1;36' grep --color=always"
alias   white-grep="GREP_COLOR='1;37' grep --color=always"

为了永久可用(重启后仍然可用),请将它们添加到您的~/.bashrc文件中。

这些命令:

xrandr --current | grep -e " connected" -A1 | green-grep -E '[0-9]+\.[0-9]+\*|$'
xrandr --current | grep -e " connected" -A1 | yellow-grep -E '[0-9]+\.[0-9]+\*|$'
xrandr --current | grep -e " connected" -A1 | cyan-grep -E '[0-9]+\.[0-9]+\*|$'

给你这个:

grep 彩色.png

  • 尝试了所有颜色后,我最喜欢黄色。

相关内容