【问题标题】:How can I replace some characters with `'` character in a text file using sed?如何使用 sed 将文本文件中的某些字符替换为 `'` 字符?
【发布时间】:2016-08-06 12:19:23
【问题描述】:

这是我知道的命令sed -i 's/&#39/'/g' output.txt。我发现第二个 ' 字符是这里出现意外结果的原因。请告诉我如何在文本文件中用' 替换字符。提前致谢。

【问题讨论】:

  • 为什么不用双引号?
  • @HuStmpHrrr 因为您永远不应该将任何脚本括在双引号中。始终在任何脚本周围使用单引号,并在其中仅在您需要使其部分可访问以供 shell 解释的段周围使用附加单引号。
  • 对于那些接受用户输入的人来说是的。在这种情况下,这是一个错误的声明。
  • echo '$20' | sed "s/$20/$30/" 输出$20echo '$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 可能决定解释的内容。当然,请随意忽略此建议。

标签: linux sed terminal


【解决方案1】:
sed 's/whatever/'\''/g' file

..

【讨论】:

  • 谢谢@EdMorton 先生。
猜你喜欢
  • 2020-01-30
  • 2017-08-30
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多