Сценарий оболочки: заменить всю строку, если шаблон соответствует - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть файл с таким содержимым:

# pam_faildelay.so    
auth    required    pam_faildelay.so    delay=2000000

Как заменить всю строку, если в ней содержится pam_faildelay?Изменение не должно влиять на комментарии.
Я попробовал следующую команду, но она обновляет комментарий.

sed -i '/pam_faildelay.so/c\auth   optional   pam_faildelay.so  delay=4000000' filename

С помощью приведенной выше команды мой файл выглядит следующим образом:

auth   optional   pam_faildelay.so  delay=4000000
auth   optional   pam_faildelay.so  delay=4000000

1 Ответ

0 голосов
/ 01 февраля 2019

Вы заменяете строки, не начинающиеся с #:

sed ' s/^[^#]*pam_faildelay\.so.*/auth   optional   pam_faildelay.so  delay=4000000/' filename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...