我正在努力使用 sed 命令将具有许多特殊字符的字符串替换为具有更多特殊字符的另一个字符串。
我有 3 个 .sh 文件,我需要在其中替换以下内容:
要替换的文本:
SERVER=`grep ^SERVER= file.properties | tail -1 | awk 'BEGIN { FS="="} { print $2 }'`
替换为以下内容:
SERVER=`grep ^SERVER_UI= poller.properties | tail -1 | awk 'BEGIN { FS="="} { print $2 }'`
echo "New SERVER_UI value is ${SERVER}"
if [ "$SERVER" == "" ]
then
SERVER=`grep ^SERVER= poller.properties | tail -1 | awk 'BEGIN { FS="="} { print $2 }'`
echo "Old SERVER value is ${SERVER}"
fi
这是我自己能够做到的,但它不起作用,我希望能得到一些帮助:
sed -i.bak 's,SERVER=`grep ^SERVER= file.properties | tail -1 | awk \'BEGIN { FS="="} { print $2 }\'`,SERVER=`grep ^SERVER_UI= file.properties | tail -1 | awk \'BEGIN { FS="="} { print $2 }\'`\necho "New SERVER_UI value is ${SERVER}"\nif [ "$SERVER" == "" ]\nthen\n SERVER=`grep ^SERVER= file.properties | tail -1 | awk \'BEGIN { FS="="} { print $2 }\'`\n echo "Old SERVER value is ${SERVER}"\nfi,' script.sh
如果帮助也附带一些解释,将不胜感激。