我正在尝试实现某些目标,在实验中我遇到了以下情况,有人可以解释我如何理解正在发生的事情吗?
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
正在查找您通过管道传递给它的输入字符串中的每个字符:*
、?
、<
、c
、o
和 ,m
并在找到时将每个字符打印在新行上。
$ echo Zcom\?\<\[\*Z
Zcom?<[*Z
$ echo Zcom\?\<\[\*Z | grep -oh "[*?<com]"
c
o
m
?
<
*
$
此外,如果您使用,grep --color -h "[*?<com]"
您将看到回显的搜索字符串中以相同顺序突出显示的相同字母。