Мне нужно пометить блоки текста со скобками, как показано здесь.
Преобразовать это:
group qwerty {
set qwe {
...
set asd {
...
...
set zxc {
...
}
}
set poi {
...
}
}
}
set a123 {
...
...
}
group lkj {
...
group mnb
set rty {
...
...
set fgh {
...
...
...
}
}
}
}
в это:
-g1- group qwerty {
-s1- set qwe {
...
-s2- set asd {
...
...
-s3- set zxc {
...
} -s33-
} -s22-
-s2- set poi {
...
} -s22-
} -s11-
} -g11-
-s1- set a123 {
...
...
} -s11-
-g1- group lkj {
...
-g2- group mnb
-s1- set rty {
...
...
-s2- set fgh {
...
...
...
} -s22-
} -s11-
} -g22-
} -g11-
Группа первого уровня должны быть помечены с -g1- и -g11-. Группа второго уровня с -g2- и -g22-.
Первый набор уровней должен быть помечен с -s1- и -s11-. Второй уровень задается с помощью -s2- и -s22- и т. Д. Я знаю основы c Седа и Авка, но это за пределами того, на что я способен. Надеюсь, что решение с Sed, Awk или Perl. Любая помощь приветствуется.