更换C&x2B+;指向句点的指针字段访问符号,使用sed

更换C&x2B+;指向句点的指针字段访问符号,使用sed,sed,replace,Sed,Replace,我正在尝试将所有出现的->替换为。我尝试了以下方法: sed -i s/->/./g licensewizard.cpp 但这给了我一个错误: sed: -e expression #1, char 3: unterminated `s' command 我不确定出了什么问题,因为如果我没有弄错的话,-和都不需要转义?您需要引用sed命令,这样shell就不会试图解释任何字符。在此特定实例中,shell正在解释字符以尝试重定向 sed -i 's/->/./g' licensew

我正在尝试将所有出现的
->
替换为
。我尝试了以下方法:

sed -i s/->/./g licensewizard.cpp
但这给了我一个错误:

sed: -e expression #1, char 3: unterminated `s' command

我不确定出了什么问题,因为如果我没有弄错的话,
-
都不需要转义?

您需要引用sed命令,这样shell就不会试图解释任何字符。在此特定实例中,shell正在解释
字符以尝试重定向

sed -i 's/->/./g' licensewizard.cpp

您需要引用sed命令,这样shell就不会试图解释任何字符。在此特定实例中,shell正在解释
字符以尝试重定向

sed -i 's/->/./g' licensewizard.cpp

好电话。我不得不用双引号,但它的意思是一样的。谢谢。@Andrej小心,双引号和单引号对shell来说并不是一回事。shell仍将尝试展开
$
和任何类似
\x
的转义操作。始终使用单引号将语法与shell不同的内联命令括起来;例如
sed
awk
。不使用单引号,但我使用的是Windows。谢谢你的提示,打得好。我不得不用双引号,但它的意思是一样的。谢谢。@Andrej小心,双引号和单引号对shell来说并不是一回事。shell仍将尝试展开
$
和任何类似
\x
的转义操作。始终使用单引号将语法与shell不同的内联命令括起来;例如
sed
awk
。不使用单引号,但我使用的是Windows。谢谢你的提示。