【问题标题】:Find & Replace on Redhat Linux using "sed"使用“sed”在 Redhat Linux 上查找和替换
【发布时间】:2011-12-19 01:28:02
【问题描述】:

我已经对此进行了多次搜索,虽然解决方案似乎很明显,但我似乎无法针对我的特定情况找到一个明确的解决方案。我有一个包含字符串“${string}”的文件,我想用另一个恰好是文件路径“/tmp/myfilepath”的字符串替换它。

"sed" 显然似乎是 linux 中最流行的选择。我正在使用以下命令:

sed -i 's/"${string}"/"/tmp/myfilepath"/g' myFile.txt

我收到错误消息...

sed: -e expression #1, char 5: unknown option to `s'

我使用双引号是因为它有额外的斜线。我尝试过混合匹配单引号和双引号,但似乎没有任何效果。有什么想法或解决方案吗?提前致谢。

【问题讨论】:

标签: linux search replace sed redhat


【解决方案1】:

您应该转义替换字符串中的反斜杠:

sed -i 's/"${string}"/"\/tmp\/myfilepath"/g' myFile.txt

或者在替换命令中使用不同的分隔符,例如冒号:

sed -i 's:"${string}":"/tmp/myfilepath":g' myFile.txt

【讨论】:

    【解决方案2】:

    使用不同的分隔符:

    sed -i "s|${string}|/tmp/myfilepath|g" myFile.txt
    

    如果字符串可以包含特殊字符,请先fix it

    【讨论】:

      猜你喜欢
      • 2020-08-05
      • 2021-10-06
      • 1970-01-01
      • 2019-11-29
      • 2016-05-12
      • 2018-10-01
      • 2017-11-11
      • 2015-01-04
      • 2020-06-24
      相关资源
      最近更新 更多