Строка комментария, соответствующая некоторому шаблону и n строкам после него с помощью Ansible - PullRequest
0 голосов
/ 22 мая 2019

Мне нужно прокомментировать строку, которая соответствует шаблону, и n строк после него (если в начале строки уже нет символа комментария). Когда мне нужно прокомментировать любую строку, содержащую шаблон 'reboot', я делаю это так:

    - name: Excluding reboot command from script
      replace:
        path: "{{some_path}}/someshellscript.sh"
        regexp: '(^(?!.*#).*reboot.*)'
        replace: '#\1'

В этой задаче комментирование строк с 'reboot' и regex не будет совпадать с '#reboot'. Но что, если мне нужно прокомментировать строку с 'reboot' и две строки после нее, когда эти строки еще не прокомментированы?

1 Ответ

1 голос
/ 22 мая 2019

Пока вы можете надежно предсказать, какой будет ваша строка, и не будет разницы в количестве строк, которые нужно комментировать после совпадения с регулярным выражением, вы можете использовать это:

- name: Excluding reboot command from script
  replace:
    path: "{{some_path}}/someshellscript.sh"
    regexp: '(^(?!.*#).*reboot.*\n)(.*\n)(.*)'
    replace: '#\1#\2#\3'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...