在带有 Bash 4.4.20(1) 的 WSL-Ubuntu 18.04 中,man
我在命令less
中运行,旨在将 -o 与逗号或后面的空格匹配。man grep
-o,|
但反而,文档中的所有空格已匹配,为什么会这样?我如何才能仅匹配 -o 并在其后添加逗号或空格?
答案1
作为正则表达式,"-o,| "
匹配"-o,"
或" "
。
使用-o(,| )
or-o[, ]
进行匹配,-o
后跟,
or 空格。或者-o\>
对于-o
后面没有跟随 a 的 a字字符(单词字符是下划线或在语言环境中归类为 alnum 的字符)。
man
您可以使用 来代替使用info
。info
手册,尤其是GNU软件的手册(比如grep
Ubuntu上的实现)一般都比较完整,更重要的是这里有一个可搜索的目录和索引。
它可以更轻松地跳转到文档中的特定主题。
例如,与:
info -- grep -o
您将直接跳转到该选项的说明-o
。
在 中info
,您还可以按i调出索引(并-o
在其中Tab完成输入),或按I(大写i
) 获取给定搜索字符串的索引条目列表。
但请注意,在某些系统上,甚至是 GNU 系统(例如 Debian/Ubuntu),info
有时默认情况下不会安装某种格式的文档。您可能需要安装一些软件包才能获取in格式somesoftware-doc
的文档。somesoftware
info
答案2
你是匹配-o,
还是空间。您想要匹配-o
后跟,
或 空格。尝试-o(,| )
。