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