为什么反斜杠'\'在linux中的工作方式如此不同?

时间:2013-02-10 12:30:49

标签: linux sed

当我像这样把反斜杠放在单引号上时

  回声'\'

它打印反斜杠,它不关心转义。

但是当我在sed中使用同样的东西时

  

sed's / \ / a / g':尝试用

替换反斜杠

或者在grep的情况下

  

echo'\\ //'| grep'\',它不起作用,也需要转义。

为什么这个反斜杠需要转义?我的意思是所有这些都失去了意义吗?

1 个答案:

答案 0 :(得分:3)

反斜杠的问题在于它对于多个工具和多个上下文有许多特殊含义。

在单引号内,它对你的 shell 失去特殊意义(请在相关时或在你不确定的时候学会用你的名字标记你的问题),但它对{{保留了特殊意义1}}(它对于正则表达式语法是特殊的,因此它应该适用于sedsed

通常你可以转义一个反斜杠而不是引用它。它不一定使事物可读,但在某些情况下,它可以。这就是我如何在没有引号的情况下使用文字grep

\

Shell将grep \\\\ 变为\\\\,正则表达式中的\\表示文字\\