使用bash删除@restart cronjob

使用bash删除@restart cronjob,bash,sed,cron,Bash,Sed,Cron,我正在尝试使用bash和sed删除@restart cronjob。cronjob条目如下所示 @reboot /opt/nzbget/nzbget -D 我尝试过使用发布的帮助,但它使用regex和non-@reboot-cronjobs,因此不起作用 我确实试过适应它,但失败了 crontab -l | sed "/\@reboot \/opt\/nzbget\/nzbget \-D/" | crontab - 我留下的信息,当它是为一个特定的用户这项工作感谢下面的答案 crontab

我正在尝试使用bash和sed删除@restart cronjob。cronjob条目如下所示

@reboot /opt/nzbget/nzbget -D
我尝试过使用发布的帮助,但它使用regex和non-@reboot-cronjobs,因此不起作用

我确实试过适应它,但失败了

crontab -l | sed "/\@reboot \/opt\/nzbget\/nzbget \-D/" | crontab -
我留下的信息,当它是为一个特定的用户这项工作感谢下面的答案

crontab -l -u username | sed '\~@reboot /opt/nzbget/nzbget -D~d' | crontab -u username -

您可以通过管道连接到此
sed
删除该行:

sed '\~@reboot /opt/nzbget/nzbget -D~d'

是否还有其他
@reboot
作业?(您的sed命令没有任何操作。它只是一个模式。您需要告诉sed实际执行某些操作(如删除行等)。可能还有其他
@reboot
作业,@anubhava建议删除所有@reboot作业。答案应该只删除与该模式匹配的行。你确定你确实用过它吗?它在这里用了一些伪造的输入。其他行中有相同的内容吗?另一个被删除的cronjob是:
@reboot sleep 180&&cd$PATH\u UBOOQUITY&&nohup java-jar$PATH\u UBOOQUITY/UBOOQUITY.jar-webadmin-headless-port 2202
EDIT:原来这是不同crontab的问题,我需要使用crontab-l-uThanks,不幸的是,这会删除所有行。在我按用户问题对crontab进行排序后,使用这种语法
crontab-l | sed'\~@reboot/opt/nzbget/nzbget-D~D'.\crontab-
现在运行良好,谢谢。似乎无法标记为答案,但为什么要转义起始定界符?@hek2mgl:这是因为在
sed
中搜索时使用了备用定界符
~
。@hek2mgl
~
在地址中有效,sed选择了该解释,并在没有转义的情况下感到困惑。(我得试试看。)