07月23, 2024

linux 文本工具 sed 报 unknown option to `s'问题记录

在配置文件中有多个变量需要替换

脚本如下

newdir=/dir/to/my/file
sed -i "s/'MyDir'/${newdir}/g" myconf.conf

脚本没问题,如过变量中存在最后一位为 /

控制台会报错

unknown option to `s'

问题在于 $newdir 包含了 / 字符,因此 sed 命令最终看起来像 s/'MyDir'//dir/to/my/file/g,这不会起作用 第一个 / 实际上终止了 sed 表达式,而其他所有内容都是无用的。

幸运的是,sed 允许您使用任何字符作为 s 命令的分隔符,因此可以改写为:

sed -i "s|'MyDir'|${newdir}|g" myconf.conf

本文链接:https://587v5.com/post/linux wen-ben-gong-ju- sed bao- unknown option to `s'-wen-ti-ji-lu.html

Comments