grep -isn"String\.format"-R之间有什么区别?和grep -isn String\.format -R.?

Vic*_*r S 1 linux bash shell grep

有什么区别

grep -isn "String\.format" -R .
Run Code Online (Sandbox Code Playgroud)

grep -isn String\.format -R .
Run Code Online (Sandbox Code Playgroud)

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

grep -isn 'String\.format' -R .
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释一下吗?

chr*_*ock 5

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

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