- Нужно закомментировать блок теста, михалыч, 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)
> нужно закомментить весь блок или какие-то выборочные строки?Этот конкретный блок. Но я расширил и добавил варианты форматирования, в разных сборках ядра линукса по-разному форматируют конфиги.
|