【问题标题】:using sed to replace ' character with \'使用 sed 将 ' 字符替换为 \'
【发布时间】:2021-12-18 07:50:30
【问题描述】:

我有一个这样的字符串abcd'efgh\ ijkl\ mnop

我想把字符串变成abcd\'efgh\ ijkl\ mnop

sed 's/\'/\\\'/g 没用

【问题讨论】:

  • 你走在正确的道路上,你只需要转义'(单引号),然后你的替换部分就可以工作了。既然你在用\' 替换' 的方向是正确的,那么你只需要转义'。附加的重复链接中给出了许多答案,以供参考。
  • @RavinderSingh13 Wiktor 让我相信这不是同一个问题,但即使对我来说也太过分了。如果你想删除它,现在把它带到 meta 中。结束
  • @Jean-FrançoisFabre,您可以提及说服您的原因,以便我/我们也可以意识到这一点。我没有说过或标记任何删除此内容的内容等。我相信在应有的尊重下,我们可以要求知道您重新开放的原因,可以告诉您,谢谢。注意:如果我们看到此链接stackoverflow.com/a/24751341/5866580,它在转义' 方面与这篇文章的答案中给出的完全相同。
  • 再次在此处为用户和 OP 发布这些 cmets。此外,第二个附加的欺骗链接(stackoverflow.com/a/24751341/5866580)中的这个特定答案给出了在这个问题中发布的sed 中转义' 的确切方法"'"
  • 感谢您的资源

标签: sed


【解决方案1】:

你可以使用

sed 's/'"'"'/\\&/g'

online demo

#!/bin/bash
s="abcd'"'efgh\ ijkl\ mnop'
sed 's/'"'"'/\\&/g' <<< "$s"
# => abcd\'efgh\ ijkl\ mnop

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 2021-03-01
    • 1970-01-01
    • 2013-03-14
    • 2020-09-12
    • 1970-01-01
    • 2014-03-15
    相关资源
    最近更新 更多