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 format和String.format,但如果我使用前者,结果只包括String.format.该结果与使用相同
grep -isn 'String\.format' -R .
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释一下吗?
如果没有引号,shell会在将字符串传递\.给.之前将其解释为grep.所以grep现在有一个正则表达式通配符,因此可以找到任何字符,包括空格.
当你包含引号时,shell将完整传递\.给grep.现在grep知道它必须搜索一个句点,而不是通配符.