man 中的所有空格均匹配

man 中的所有空格均匹配

在带有 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您可以使用 来代替使用infoinfo手册,尤其是GNU软件的手册(比如grepUbuntu上的实现)一般都比较完整,更重要的是这里有一个可搜索的目录和索引。

它可以更轻松地跳转到文档中的特定主题。

例如,与:

info -- grep -o

您将直接跳转到该选项的说明-o

在 中info,您还可以按i调出索引(并-o在其中Tab完成输入),或按I(大写i) 获取给定搜索字符串的索引条目列表。

但请注意,在某些系统上,甚至是 GNU 系统(例如 Debian/Ubuntu),info有时默认情况下不会安装某种格式的文档。您可能需要安装一些软件包才能获取in格式somesoftware-doc的文档。somesoftwareinfo

答案2

你是匹配-o,还是空间。您想要匹配-o后跟,或 空格。尝试-o(,| )

相关内容