首页 > 解决方案 > 如何使用 sed 将文本替换为文件路径?

问题描述

我正在编写一个 bash 脚本,我需要用特定文件路径替换文件中的文本,但我的理解是这sed不适用于特定字符,例如/. 我想知道是否有办法解决这个问题?

这是我目前的脚本:

currentdir="$PWD"
filepathvar="${currentdir}/settings.ini"

sed -i -e "s/filepath/$filepathvar/g" aimparmstest

当我打印出所有内容时,filepathvar一切都如我所愿,但似乎filepathvar包含特殊字符的事实,它给了我以下错误:

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

有没有办法解决?或者也许我可以使用另一个命令?我在更改参数方面没有取得任何成功。任何帮助是极大的赞赏。

标签: linuxbashsedscripting

解决方案


您可以使用任何字符作为分隔符(第一个字符)。例如:

echo "a/b/c" | sed -e 's|/|_|g'

在你的情况下:

sed -i -e "s|filepath|$filepathvar|g" aimparmstest

推荐阅读