当我像这样把反斜杠放在单引号上时
回声'\'
它打印反斜杠,它不关心转义。
但是当我在sed中使用同样的东西时
sed's / \ / a / g':尝试用
替换反斜杠
或者在grep的情况下
echo'\\ //'| grep'\',它不起作用,也需要转义。
为什么这个反斜杠需要转义?我的意思是所有这些都失去了意义吗?
答案 0 :(得分:3)
反斜杠的问题在于它对于多个工具和多个上下文有许多特殊含义。
在单引号内,它对你的 shell 失去特殊意义(请在相关时或在你不确定的时候学会用你的名字标记你的问题),但它对{{保留了特殊意义1}}(它对于正则表达式语法是特殊的,因此它应该适用于sed
和sed
)
通常你可以转义一个反斜杠而不是引用它。它不一定使事物可读,但在某些情况下,它可以。这就是我如何在没有引号的情况下使用文字grep
:
\
Shell将grep \\\\
变为\\\\
,正则表达式中的\\
表示文字\\
。