【发布时间】:2016-08-06 12:19:23
【问题描述】:
这是我知道的命令sed -i 's/&#39/'/g' output.txt。我发现第二个 ' 字符是这里出现意外结果的原因。请告诉我如何在文本文件中用' 替换字符。提前致谢。
【问题讨论】:
-
为什么不用双引号?
-
@HuStmpHrrr 因为您永远不应该将任何脚本括在双引号中。始终在任何脚本周围使用单引号,并在其中仅在您需要使其部分可访问以供 shell 解释的段周围使用附加单引号。
-
对于那些接受用户输入的人来说是的。在这种情况下,这是一个错误的声明。
-
echo '$20' | sed "s/$20/$30/"输出$20。echo '$2' | sed "s/$2/$30/"输出sed: -e expression #1, char 0: no previous regular expression不涉及用户输入,只是由双引号引起的 shell 不良评估。只是不要这样做,避免任何意外或增加脚本复杂性的需要。通过比较echo '$20' | sed 's/$20/$30/'和echo '$2' | sed 's/$2/$30/'都输出$30,没有意外或需要逃避任何shell 可能决定解释的内容。当然,请随意忽略此建议。