问题描述
当使用grep时,它会突出显示与正则表达式匹配的行中的任何文本。
When using grep, it will highlight any text in a line with a match to your regular expression.
如果我想要这样的行为,但是会打印出grep所有线路以及?在通过grep手册页快速浏览后,我空了。
What if I want this behaviour, but have grep print out all lines as well? I came up empty after a quick look through the grep man page.
推荐答案
使用ack。在此检出 - passthru
选项:。它具有允许完整的perl正则表达式的附加好处。
Use ack. Checkout its --passthru
option here: ack. It has the added benefit of allowing full perl regular expressions.
$ ack --passthru 'pattern1' file_name
$ command_here | ack --passthru 'pattern1'
你也可以这样使用grep:
You can also do it using grep like this:
$ grep --color -E '^|pattern1|pattern2' file_name
$ command_here | grep --color -E '^|pattern1|pattern2'
这将匹配所有行并突出显示图案。 ^
匹配每一行的开头,但不会被打印/突出显示,因为它不是一个字符。
This will match all lines and highlight the patterns. The ^
matches every start of line, but won't get printed/highlighted since it's not a character.
(请注意,大多数设置将默认使用--color,您可能不需要该标志)。
(Note that most of the setups will use --color by default. You may not need that flag).
这篇关于突出显示类似于grep的文本,但不要过滤掉文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!