Der*_*ike 19 linux command-line
当我使用 eg 时,cat file.txt | grep --color=tty "pattern"我会突出显示我搜索的模式。当我想要更多关于每次命中的上下文时,grep 具有-A,-B和-C参数。
但是,我想显示整个文件(或任何命令输出)并突出显示某个模式。是否存在这样的高亮命令或工具?
Den*_*son 22
在 unix.stackexchange.com上有一个答案有这个巧妙的技巧:
grep -E --color 'pattern|$' file.txt
Run Code Online (Sandbox Code Playgroud)
或者
grep --color 'pattern\|$' file.txt
Run Code Online (Sandbox Code Playgroud)
匹配您的模式或每行的行尾。仅突出显示图案。
Ada*_*kin 10
我喜欢ack。
ack --passthru somepattern filename
Run Code Online (Sandbox Code Playgroud)
它就像 grep,但更好。它默认高亮显示,并使用--passthru选项显示整个文件(或标准输入),而不仅仅是匹配的行。
我还推荐使用less(或此类),但我想向您展示一个更具教学意义的解决方案。一旦你定义了这个函数:
函数高亮()
{
sed "s/$1/`tput smso`&`tput rmso`/g" "${2:--}"
}
你可以这样使用它:
command | highlight pattern
highlight pattern file.txt
Run Code Online (Sandbox Code Playgroud)
注意:此版本区分大小写,要更改仅在表达式i之后添加g的内容sed。
| 归档时间: |
|
| 查看次数: |
14689 次 |
| 最近记录: |