如何使用 sed 将文本替换为文件路径?
How to use sed to replace text with a file path?
我正在编写 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'
有什么办法解决这个问题吗?或者我可以使用另一个命令?我在更改参数方面没有取得任何成功。非常感谢任何帮助。
您可以使用任何字符作为分隔符(第一个字符)。例如:
echo "a/b/c" | sed -e 's|/|_|g'
你的情况:
sed -i -e "s|filepath|$filepathvar|g" aimparmstest
我正在编写 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'
有什么办法解决这个问题吗?或者我可以使用另一个命令?我在更改参数方面没有取得任何成功。非常感谢任何帮助。
您可以使用任何字符作为分隔符(第一个字符)。例如:
echo "a/b/c" | sed -e 's|/|_|g'
你的情况:
sed -i -e "s|filepath|$filepathvar|g" aimparmstest