在文本中突出显示正则表达式的命令?

Fra*_*ank 14 bash highlighting

是否有一个命令可以突出显示文本中的某个表达式?

我正在寻找类似“搜索”功能的less,但在标准输出上输出普通文本,而不是less查看器。

例子:

$ cat test.txt | highlight "an"
Run Code Online (Sandbox Code Playgroud)

对于前景的距离Afgh有序撤出北约的IST的遭遇了两次挫折总统卡尔扎伊德国马克的关于美国军队DED限制的d的塔里布的暂停和谈。

它可以使用颜色或任何其他方式来突出指定的正则表达式。

man*_*ork 18

不确定这是由于某个功能还是某些隐藏的副作用,但这在 GNU grep2.11 中有效:

grep --color 'an\|' test.txt
Run Code Online (Sandbox Code Playgroud)

  • 这就像你在做`grep 'an' OR ''`。`''` 在输入的每个位置都没有成功匹配。只有 `an` 被高亮显示,因为你不能高亮什么都没有。:-) (10认同)

cjm*_*cjm 10

ack有一个--passthru选项可以做到这一点:

ack --passthru an test.txt
some_command | ack --passthru an -
Run Code Online (Sandbox Code Playgroud)

  • (+1)顺便说一句:在Ubuntu repo中,包(和可执行文件)被称为`ack-grep` ...(名称`ack`适用于汉字代码转换器) (2认同)