The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Нужно закомментировать блок теста, !*! universite, 04-Окт-18, 19:35  [смотреть все]
Здравствуйте.

Есть текстовый конфиг, в середине которого есть такой блок


/var/log/lastlog {
    monthly
    rotate 1
}

Как бы его закомментировать символом # в начале строки. Спасибо.

P.S. OS FreeBSD 11.2 или Debian 8.x.

  • Нужно закомментировать блок теста, !*! михалыч, 17:16 , 05-Окт-18 (1)
    > Здравствуйте.
    > Есть текстовый конфиг, в середине которого есть такой блок
    >
     
    > /var/log/lastlog {
    >     monthly
    >     rotate 1
    > }
    >

    > Как бы его закомментировать символом # в начале строки. Спасибо.
    > P.S. OS FreeBSD 11.2 или Debian 8.x.

    Пожалуйста.

    perl -00pe 's|\A(/var/log/lastlog\s+{\n)(\s+monthly\n)(\s+rotate\s+1\n)(})|#$1#$2#$3#$4|' file

    • Нужно закомментировать блок теста, !*! Pahanivo, 20:23 , 05-Окт-18 (2)

      >
      perl -00pe 's|\A(/var/log/lastlog\s+{\n)(\s+monthly\n)(\s+rotate\s+1\n)(})|#$1#$2#$3#$4|' 

      \s* в начале и конце строки весьма не помешает
      также неплохо снабдить все сивмолы новой строки внутри { } знаком ? ибо не факт что там везде новая строка

      • Нужно закомментировать блок теста, !*! universite, 21:03 , 05-Окт-18 (3)
        >>
        perl -00pe 's|\A(/var/log/lastlog\s+{\n)(\s+monthly\n)(\s+rotate\s+1\n)(})|#$1#$2#$3#$4|' 
        > \s* в начале и конце строки весьма не помешает
        > также неплохо снабдить все сивмолы новой строки внутри { } знаком ?
        > ибо не факт что там везде новая строка

        Понял.
        Пошел писать регулярку на sed'e.

        • Нужно закомментировать блок теста, !*! Pahanivo, 00:05 , 06-Окт-18 (4)
          > Пошел писать регулярку на sed'e.

          полуношный извращенец - тебе же перловку сваренную дали ))

          • Нужно закомментировать блок теста, !*! universite, 15:03 , 06-Окт-18 (5)
            >> Пошел писать регулярку на sed'e.
            > полуношный извращенец - тебе же перловку сваренную дали ))

            Только когда для тестов добавляешь пробелы и табуляторы в начале и конце строк этого блока конфига, регулярка сдувается...

            последняя моя попытка была на :


            perl -i -00pe 's|\A(\s*/var/log/lastlog\s+{\n)(\s*\s+monthly\s*\n)(\s*\s+rotate\s*\s+1\n)(\s*}\s*)|#$1#$2#$3#$4|' logrotate.conf

            Плюс в синтаксисе Perl непонятно как разбивать выражение по строкам, чтоб добиться бОльшей читабельности...

            • Нужно закомментировать блок теста, !*! михалыч, 11:26 , 07-Окт-18 (6)
              >>> Пошел писать регулярку на sed'e.
              >> полуношный извращенец - тебе же перловку сваренную дали ))
              > Только когда для тестов добавляешь пробелы и табуляторы в начале и конце
              > строк этого блока конфига, регулярка сдувается...
              > последняя моя попытка была на :
              >
               
              > perl -i -00pe 's|\A(\s*/var/log/lastlog\s+{\n)(\s*\s+monthly\s*\n)(\s*\s+rotate\s*\s+1\n)(\s*}\s*)|#$1#$2#$3#$4|'
              > logrotate.conf
              >

              выше подсказали - использовать \s*

              perl -00pe 's|\A(\s*/var/log/lastlog\s*{\s*\n)(\s*monthly\s*\n)(\s*rotate\s+1\s*\n)(\s*}\s*)|#$1#$2#$3#$4|' logrotate.conf


              > Плюс в синтаксисе Perl непонятно как разбивать выражение по строкам, чтоб добиться
              > бОльшей читабельности...

              нужно закомментить весь блок или какие-то выборочные строки?

              • Нужно закомментировать блок теста, !*! Pahanivo, 10:12 , 08-Окт-18 (7)
                В перле можно сварить весьма крутые, и в тоже время весьма простые регексы. Но! Нужно точно знать может быть на входе с возможными вариантами. От этого и плясать.

                У мну свой чистильщик/парсер конфигов апача где то валяется. Я там делал немного по другому. Я сначала приводил конфиг к некоторому общему виду (удалении пустых строк и коментов, склеивание многострочных разбивок директив, удалении трейлинг/лединг пробелов, приклеивание инклудов  и тд). На выходе у меня получался конфиг в заложенном МНОЙ гарантированном стандарте. А далее для парсинга использовал примитивнейшие правила, ибо четко знал что на входе. Получилось в итоге два разработчика в конвейере - но они оба простые и понятные.

                И еще. Многи кто начинает работать с регулярками делают одну существенную ошибку - смотрят на регулярки как на шаблоны поиска, что в корне не верно. Регулярки это суть макрос для настройки алгоритма поиска.

                • Нужно закомментировать блок теста, !*! михалыч, 15:33 , 08-Окт-18 (8)
                  > В перле можно сварить весьма крутые, и в тоже время весьма простые
                  > регексы. Но! Нужно точно знать может быть на входе с возможными
                  > вариантами. От этого и плясать.

                  Да.

                  > У мну свой чистильщик/парсер конфигов апача где то валяется. Я там делал
                  > немного по другому. Я сначала приводил конфиг к некоторому общему виду
                  > (удалении пустых строк и коментов, склеивание многострочных разбивок директив, удалении
                  > трейлинг/лединг пробелов, приклеивание инклудов  и тд). На выходе у меня
                  > получался конфиг в заложенном МНОЙ гарантированном стандарте. А далее для парсинга
                  > использовал примитивнейшие правила, ибо четко знал что на входе. Получилось в
                  > итоге два разработчика в конвейере - но они оба простые и
                  > понятные.

                  своя рука - владыка
                  кому как ни себе лучше знать, что имеем и что хотим получить

                  > И еще. Многи кто начинает работать с регулярками делают одну существенную ошибку
                  > - смотрят на регулярки как на шаблоны поиска, что в корне
                  > не верно. Регулярки это суть макрос для настройки алгоритма поиска.

                  и ещё раз - да! ))

                  однако, сдаётся мне, что всё это хорошо было бы адресовать тому,
                  который ни много ни мало называет себя вселенной

                  • Нужно закомментировать блок теста, !*! Pahanivo, 17:17 , 08-Окт-18 (9)
                    > своя рука - владыка
                    > кому как ни себе лучше знать, что имеем и что хотим получить

                    Тут дело в разных подходах, а не в конкретных руках.

                    > однако, сдаётся мне, что всё это хорошо было бы адресовать тому,
                    > который ни много ни мало называет себя вселенной

                    ну дак ему и адресовано
                    кхе кхе его ник как бы не тянет совсем на вселенную )) а даже скорее наоборот если правильно перевести

                  • Нужно закомментировать блок теста, !*! universite, 22:55 , 14-Окт-18 (10)
                    > однако, сдаётся мне, что всё это хорошо было бы адресовать тому,
                    > который ни много ни мало называет себя вселенной

                    Вселенная - universe.
                    Так что не надо мне приписывать манию величия.

              • Нужно закомментировать блок теста, !*! universite, 22:56 , 14-Окт-18 (11)

                > нужно закомментить весь блок или какие-то выборочные строки?

                Этот конкретный блок.
                Но я расширил и добавил варианты форматирования, в разных сборках ядра линукса по-разному форматируют конфиги.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру