我面臨sed命令替換文本的問題。當替換文本是沒有任何特殊字符的平面文本時,sed命令可以很好地工作。但是我的替換文本包含unix文件系統路徑,因此它不起作用。我下面得到一個錯誤,有人請幫我在這:使用sed替換包含特殊字符的shell腳本中的字符串
$ ./install2
sed: -e expression #1, char 22: unknown option to `s'
sed: -e expression #1, char 16: unknown option to `s'
$ cat install2
#!/bin/bash
CONFIG=./config
TMPFILE=./tmpFile
while read line
do
var=$(echo $line | cut -d'=' -f1)
val=$(echo $line | cut -d'=' -f2)
sed -i "s/$var/${val}/i" $TMPFILE
done < "$CONFIG"
$ cat config
INSTALLATION_ROOT=/opt/install/user-home/products
DOWNLOAD_HIBERNATE=false
CONFIG_ROOT=/opt/configs/cfgMgmt/products
$ cat tmpFile
<entry key="installationRoot">INSTALLATION_ROOT</entry>
<entry key="configDirectoryRoot">CONFIG_ROOT</entry>
感謝, 陽光