如何在SED中做一条评论

对不起,如果是重复。 我有这样的crontab项:

* * * * * sleep 15;/etc/opt/wer.sh 1 * * * * /opt/sfm/qwe/as.sh 

如何在包含使用sed调用“as.sh”的行上插入#号?
如何取消注销?

    您可以使用:

     sed '/\/as.sh/s/^/#/' 

    它将用包含/as.sh所有行的注释字符替换起始行零宽度标记,如以下示例所示:

     pax> echo ' * * * * * sleep 15;/etc/opt/wer.sh 1 * * * * /opt/sfm/qwe/as.sh ' | sed '/\/as.sh/s/^/#/' * * * * * sleep 15;/etc/opt/wer.sh #1 * * * * /opt/sfm/qwe/as.sh 

    但是你需要记住几件事情。

    • 仅仅改变文件通常是不够的,还需要通知cron它需要重新读取它。 如果您使用crontab命令本身,这是自动的,但如果您直接编辑文件,则可能必须向cron发送信号。
    • 在重要的系统文件上打开脚本并不总是一个好主意。 确保你知道你在做什么,不要相信网上的任何老的代言人( 包括我)。 彻底测试一下。

    要摆脱标记,请使用:

     sed '/\/as.sh/s/^#//' 

    这是相反的操作,它找到那些包含/as.sh行,并且在行的开头用任何#字符替换。

    要添加评论:

     sed -e "s/\(.*\)\(as.sh\)/\#\1\2/g" 

    删除评论:

     sed -e "s/\(^#\)\(.*\)\(as.sh\)/\2\3/g" 

    使用crontab -e来修改当前用户的crontab。