什么 grep -oh "[*?

什么 grep -oh "[*?

我正在尝试实现某些目标,在实验中我遇到了以下情况,有人可以解释我如何理解正在发生的事情吗?

echo " Agent process not running on www.raja.server.local.com" | grep -oh "[*?<com]"
o
c
o
o
o
c
c
o
m

谢谢。

答案1

来自 grep 联机帮助页:

   -o, --only-matching
          Print only the matched (non-empty) parts  of  a  matching  line,
          with each such part on a separate output line.

在这种情况下,这-h是一个空操作。

grep正在查找您通过管道传递给它的输入字符串中的每个字符:*?<co和 ,m并在找到时将每个字符打印在新行上。

$ echo Zcom\?\<\[\*Z
Zcom?<[*Z
$ echo Zcom\?\<\[\*Z | grep -oh "[*?<com]"
c
o
m
?
<
*
$ 

此外,如果您使用,grep --color -h "[*?<com]"您将看到回显的搜索字符串中以相同顺序突出显示的相同字母。

相关内容