2012-07-24 47 views

回答

5

没有引号的解释\.作为.字符串传递给grep之前。因此,grep现在具有正则表达式通配符,因此可以找到任何字符,包括空格。

当您包含引号时,shell将完整\.传递到grep。现在grep知道它必须搜索一段时间,而不是通配符。

+0

为什么bash shell对待\特别?它如何处理“”和“”? – 2012-07-24 16:15:56

+0

@VictorS反斜杠是[转义字符](http://en.wikipedia.org/wiki/Escape_character#Bourne_shell)。 – chrisaycock 2012-07-24 16:25:06

+0

@VictorS:你可以通过单引号来处理''',例如''“'(转义也可以),你可以通过转义来处理'''''''' '''',或者用双引号括起来'''“';我建议将任何'嫌疑'字符用单引号括起来,并且只需简单地转义未加引号的单引号字符即可。这是一个直截了当,可靠的交叉点。 – Sorpigal 2012-07-24 16:52:51

1

你的shell吃了反斜杠,所以你必须转义它才能将它传递给grep

相关问题