Как сделать строку в качестве комментария в САС - PullRequest
3 голосов
/ 30 июля 2010

Извините, если это повторение. У меня есть записи в crontab, которые выглядят так:

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

Как вставить # в строку, содержащую вызов «as.sh», используя sed ?
Как раскомментировать это обратно?

Ответы [ 3 ]

5 голосов
/ 30 июля 2010

Вы можете использовать:

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

3 голосов
/ 30 июля 2010

Добавить комментарий:

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

Чтобы удалить комментарий:

sed -e "s/\(^#\)\(.*\)\(as.sh\)/\2\3/g"
0 голосов
/ 30 июля 2010

используйте crontab -e для изменения crontab текущего пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...