0

man bash | grep "\-d"

很多结果

man bash | grep " \-d"

没结果

这里发生了什么?

4

3 回答 3

4

它实际上就是它的样子。没有空格,所以 grep 找不到任何空格。如果您检查以下的实际输出man bash

man bash > data

然后看看data你会发现,在屏幕上呈现为空间的东西实际上是一个转义序列。屏幕上看起来像这样:

May also be specified as -d.

实际上是这样的:

May also be specified as ^[[1m-d^[[22m.

您的终端可以很好地解释这些。grep 没有。

于 2012-11-02T15:55:59.107 回答
0

" \-d"您是否从某个可能包含制表符或非 ascii 空格的地方剪切并粘贴了该文件?以下所有内容在我的 Ubuntu 12 Linux 3.2.0-32 系统上都可以正常工作,其中第"一个后面的空白是 ascii 空间。

man bash | grep  " \-d"
man bash | grep  " -d"
man bash | grep -- "-d"
man bash | grep -- " -d"
man bash | grep -- "-d" |wc
man bash | grep -- " -d" |wc

后两种形式分别输出43 300 261112 118 855。which 标记选项结束对于--第四个和第六个项目不是必需的,其中模式以空格而不是破折号开头。

于 2012-11-02T15:55:21.723 回答
0

男子重击 | grep "-d"

如果您正在搜索字符串“-d”

它给了我回应

但在这里

男子重击 | grep“-d”

您正在搜索字符串“-d”(注意 -d 之前的空格)。可能是“man bash”没有这样的字符串

但它给了我回应(我无法发布截图)

于 2012-11-02T16:04:24.573 回答