我想在OpenBox启动时用双引号替换一行,例如:
(sleep 2 && terminator -e "htop") &
与
#(sleep 2 && terminator -e "htop") &
我使用此命令,但不起作用:
sed -i "s/(sleep 2 && terminator */#(sleep 2 && terminator -e "htop") &/" ~/.config/openbox/autostart
它给了我这个错误:
`sed: -e expression #1, char : unknown`
最佳答案
替换字符串中的“&”号会调用搜索字符串中的模式。
因此,您可以执行以下操作:
sed -i "s/(sleep 2 && terminator */#&/" ~/.config/openbox/autostart
同样,您可以在外部使用单引号,在内部使用双引号,或者在内部双引号使用\“。
sed 's/(sleep 2 && terminator -e "htop") &/#(sleep 2 \&\& terminator -e "htop") \&/' ~/.config/openbox/autostart
要么
sed -i "s/(sleep 2 && terminator -e \"htop\") &/#(sleep 2 \&\& terminator -e \"htop\") \&/" ~/.config/openbox/autostart