如何使 grep 命令返回整个匹配的行

如何使 grep 命令返回整个匹配的行

我怎样才能让命令grep -w显示包含匹配项的整行?我需要强制图案匹配整个单词,但我需要看到整行。

这是我的命令:

cat /var/log/message.log | grep -w foobar

答案1

如果我没记错的话,grep显示已找到匹配项的整行。对于特定的单词,我grep直接使用 而不是cat | grep

grep -w "foobar" /var/log/messages.log

如果您没有看到任何其他输出,则意味着该行上没有其他任何内容。

答案2

另一种方法(除了 -w 选项)是通过适当的模式匹配整行:

cat /var/log/message.log | grep -P \^\.\*foobar\.\*\$

或不区分大小写:

cat /var/log/message.log | grep -iP \^\.\*foobar\.\*\$

这里的一个优点是它可以独立于文件使用,例如:

xauth list | grep -iP \^\.*foobar\.\*\$

相关内容