Вы можете использовать:
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
, и заменяет любые #
символ в начале строки с ничем.