【发布时间】:2016-10-30 06:24:08
【问题描述】:
我的字符串如下:
[ -f /sbin/runuser ] && eval '/sbin/runuser - root -c "/etc/init.d/vcs -start"' || /bin/su - root -c "/etc/init.d/vcs -start"
替换字符串后,我需要如下输出:
[ -f /sbin/runuser ] && eval '/sbin/runuser - myuser -c "/etc/init.d/vcs -start"' || /bin/su - root -c "/etc/init.d/vcs -start"
在 sed 命令的帮助下,我试图替换它,但它只是替换了一半的字符串。我使用了以下命令:
sed s@"/sbin/runuser .* -c \"${RC_VCS}"@"/sbin/runuser - $myuser -c \"${RC_VCS}"@g
而${RC_VCS} 是/etc/init.d/vcs 而$myuser 是dummy
我的输出如下:
[ -f /sbin/runuser ] && eval '/sbin/runuser - dummy -c "/etc/init.d/vcs -start"
谁能帮我解释一下为什么 sed 命令在替换过程中只占用了字符串的一半以及如何替换该字符串中的单词?
【问题讨论】: