如何在 Linux 中使用 bash grep时仅打印匹配的字符串、文本、单词或者模式

默认情况下,当我们在没有使用任何选项的情况下使用 grep 时,它会打印与我们尝试 grep 的字符串匹配的整行

例如:
我想在 rsyslog.conf 文件中搜索“ModLoad”

因此,当尝试没有使用任何选项或者参数 进行grep 时

# grep ModLoad /etc/rsyslog.conf
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
 $ModLoad imjournal # provides access to the systemd journal
 $ModLoad imklog # reads kernel messages (the same are read from journald)
 $ModLoad immark  # provides --MARK-- message capability
 $ModLoad imudp
 $ModLoad imtcp

但是将会得到了一大堆东西
而如果我只想 grep 文本“ModLoad” ,怎么办?

# egrep -o ModLoad /etc/rsyslog.conf
 ModLoad
 ModLoad
 ModLoad
 ModLoad
 ModLoad
 ModLoad

在这里,我们使用了 egrep, 因为有的shell只有 egrep支持正则表达式,或者您可以使用“grep -E”
这里 -o 的意思是“打印每个匹配项,但只打印匹配项,而不是整行。”

日期:2020-06-02 22:17:10 来源:oir作者:oir