Я пытаюсь прокомментировать строку в /etc/sudoers
через скрипт оболочки. Это соответствующая линия, которую я хотел бы изменить:Sed: Как заменить строку, которая содержит несколько специальных символов?
# grep '\!requiretty' /etc/sudoers
Defaults:nagios !requiretty
Но, похоже, шаблон я использую с sed
неверен, мои попытки:
# sed -i 's/^Defaults\:nagios$/#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/\#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/\#Defaults:nagios \!requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/^#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults\:nagios$/^#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults\:nagios$/#Defaults:nagios \!requiretty/g' /etc/sudoers
Ни один из выше работал. ..
Может кто-нибудь, пожалуйста, помогите мне с правильным регулярным выражением?
Заранее спасибо
Из вашего описания не ясно мне, что линия выглядит, как и раньше, и что он будет после редактирования. Также важно знать, как выглядят другие строки. Если нет аналогичного файла, регулярное выражение может быть намного проще ... Совет: при разработке регулярного выражения начинайте с простейшей части и добавляйте детали шаг за шагом. Таким образом, вы узнаете, какая часть работает. –