LINUX.ORG.RU
ФорумAdmin

Простая регулярка

 ,


0

1

Привет!

Входные данные:
файл конфига содержащий как закомментированные строки так и нет. Символ комментария “#” Также есть и указание на модули к ктоторому применимы параметры:

[modul21]
#instance_23_audit_ =hour
instance_fuck_audit=True
Мне необходимо сделать читаемый вывод тех параметров, которые не закомментированы вместе с заголовком модуля.. Так, чтобы перед строкой [modul21] был один или два переноса строки.

Вывод:

[modul21]
instance_fuck_audit=True
instance_fuck_audit=True
instance_fuck_audit=True

[modul21]
instance_fuck_audit=True
instance_fuck_audit=True
instance_fuck_audit=True


делаю выборку по примененным параметрам я так:

grep -v "^#"  /etc/conf.conf |sort

А вот с остальным прока проблема. Никак не осилю. AWK


не очень понял, еще и сортировать надо внутри каждого модуля?

awk '/^\[/{print «\n»} /^[^#]/{print}' /etc/conf.conf
Yur4eg ★★
()
Ответ на: комментарий от Yur4eg

Спасибо не работает +) Сортировать не нужно, нужно добавлять отступ перед [modul21]

[modul21]
#instance_23_audit_ =hour
instance_fuck_audit=True
[modul22]
#instance_23_audit_ =hour
instance_fuck_audit=True
[modul23]
#instance_23_audit_ =hour
instance_fuck_audit=True

Нужно:

[modul21]
instance_fuck_audit=True


[modul22]
instance_fuck_audit=True


[modul23]
instance_fuck_audit=True
Dr0id
() автор топика
Ответ на: комментарий от Yur4eg

Спасибо отлично отрабатывает!


awk '/^\[/{print "\n"} /^[^#]/{print}' /etc/conf.conf
Dr0id
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.