我想在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

10-07 21:45