【发布时间】:2017-03-28 20:11:19
【问题描述】:
我尝试将以下文件中的字符串替换为另一个具有特殊字符的字符串,例如 (=,",-) 。
这是服务文件,我需要自定义并添加命名服务到这个文件重新启动
#!/bin/bash
. /etc/init.d/functions
PIDFILE=/var/run/Naming_Service.pid
PORT=
OPTIONS="-p ${PIDFILE}"
RETVAL=0
prog="Naming_Service"
start() {
echo -n $"Starting $prog: "
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
setsid /usr/local/bin/Naming_Service ${OPTIONS} &
RETVAL=$?
fi
echo
return $RETVAL
}
在这个文件中我想替换第一次出现的
OPTIONS="-p ${PIDFILE}"
替换为
OPTIONS_1234="-p ${PIDFILE_1234} -ORBEndpoint iiop://10.12.23.34:1234"
OPTIONS_1235="-p ${PIDFILE_1235} -ORBEndpoint iiop://10.12.23.34:1235"
OPTIONS_1236="-p ${PIDFILE_1236} -ORBEndpoint iiop://10.12.23.34:1236"
我用 sed 命令编写了一个 shell 脚本文件,我遇到了特殊符号的问题。 你能给出解决方案吗
PORT_NS=13021
PIDFILE=/home/vagrant/Naming_Service_${PORT_NS}.pid
PIDFILE_13016=/home/vagrant/Naming_Service_${PORT_NS}.pid
ORIGINAL="OPTIONS="-p ${PIDFILE}""
REPLACE="OPTIONS_13016="-p ${PIDFILE_13016} -ORBEndpoint iiop://172.31.153.56:13016""
sed -i "0,/$ORIGINAL/s//$REPLACE/" "tao"
【问题讨论】:
-
向我们展示您的“带有 sed 命令的 shell 脚本文件”。
-
我做了基本的方法,就像我在文件 sed -i '0,/$ORIGINAL/$REPLACE' 文件名中写了下面的 cmd
-
“特殊符号问题”?嗯,我希望你写了哪些特殊符号会导致你出现问题,那么也许我/我们可以提供帮助。但我不能花时间猜测哪个。 (请用不工作的东西更新你的 Q,包括(非常)小的“特殊符号”样本以及处理它们后所需的输出。好吗?;-))。祝你好运。
-
第一次出现 OPTIONS="-p ${PIDFILE}" 替换为 OPTIONS_1234="-p ${PIDFILE_1234} -ORBEndpoint iiop://10.12.23.34:1234" OPTIONS_1235="-p $ {PIDFILE_1235} -ORBEndpoint iiop://10.12.23.34:1235" OPTIONS_1236="-p ${PIDFILE_1236} -ORBEndpoint iiop://10.12.23.34:1236" 这就是我要找的
-
edit 请提供有关该信息的问题。