Joh*_*ica 103
区别在于shell如何处理反斜杠:
当您"\\"
使用双引号编写时,shell会解释反斜杠转义并最终将字符串传递\
给grep.Grep然后看到一个没有后续字符的反斜杠,因此它会发出"尾随反斜杠"警告.如果你想使用双引号,你需要应用两个转义级别,一个用于shell,一个用于grep.结果:"\\\\"
.
当你写'\\'
在单引号,外壳也没有做任何解释,这意味着grep的接收字符串\\
与两个反斜杠完好.Grep将此解释为转义反斜杠,因此它会在文件中搜索文字反斜杠字符.
如果不清楚,我们可以echo
用来确切了解shell正在做什么.echo
不会做任何反斜杠解释本身,所以它打印的是shell传递给它的内容.
$ echo "\\"
\
$ echo '\\'
\\
Run Code Online (Sandbox Code Playgroud)
您可以将命令编写为
grep "\\\\" ...
Run Code Online (Sandbox Code Playgroud)
它有两对反斜杠,bash将转换为两个单反斜杠。然后,这对新对将作为转义的反斜杠传递给grep,让您获得所需的内容。
归档时间: |
|
查看次数: |
33992 次 |
最近记录: |