使用 sed 命令替换包含斜杠“/”的字符串

使用 sed 命令替换包含斜杠“/”的字符串

如何使用命令替换文件中I1Rov4Rvh/GtjpuuYttr==的字符串?mytestmtestsed.propertiessed

我努力了:

sed -e -i 's/I1Rov4Rvh/GtjpuuYttr==/mytest/g' mtestsed.properties

答案1

sed 分隔符可以是任何字符,恰好适合需要将字符串替换为的情况/

任何一个

  • 转义/符号:

    sed -i 's/I1Rov4Rvh\/GtjpuuYttr==/mytest/g'
    
  • 使用另一个分隔符:

    sed -i 's|I1Rov4Rvh/GtjpuuYttr==|mytest|g'
    

    sed -i 's:I1Rov4Rvh/GtjpuuYttr==:mytest:g'
    

答案2

问题出/在您要替换的文本中。这是一个特殊字符,sed因此您需要使用 来转义它\。另外,正如评论中指出的:由于-e需要脚本的选项,该命令也会失败。

这应该有效:

sed -i 's/I1Rov4Rvh\/GtjpuuYttr==/mytest/g' mtestsed.properties

相关内容