1

有什么区别

grep -isn "String\.format" -R .

grep -isn String\.format -R .

当我使用后者时,结果包括String formatand String.format,但如果我使用前者,结果只包括String.format. 此结果与使用相同

grep -isn 'String\.format' -R .

谁能给个解释?

4

2 回答 2

5

如果没有引号,shell在将字符串传递给 . 之前解释\.为 a 。所以现在有一个正则表达式通配符,因此可以找到任何字符,包括空格。.grepgrep

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

于 2012-07-24T16:05:14.010 回答
1

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

于 2012-07-24T16:04:35.887 回答