интересный вопрос! Но это не традиционный ответ. У меня есть многочисленные комментарии, которые не вписываются в S.O. Формат комментария, поэтому, пожалуйста, простите это нарушение этикета.
Насколько мне нравится * awk, я вижу несколько препятствий.
1. Мне не известны никакие инструменты CMS, созданные с помощью nawk. У меня большой опыт работы с awk, и, как вы обнаружили, их несколько (TinyTim и Blis), но они основаны на bash / gawk и не так полнофункциональны, как вы. требуется.
Когда я отправился на судно awk (www.awk.info), у меня сложилось четкое впечатление, что сайт взломан. Я нашел Крошечную CMS в awk , но предположил, что это система на основе gawk. Эти два сайта имеют связанных авторов, поэтому я боюсь, что они тоже могут быть взломаны. Осторожно!
2. Похоже, вы думаете о традиционной системе на основе командной строки awk и сценариев оболочки. Если так, то мой ограниченный опыт работы с системами CMS заключался в том, что они основаны на графическом интерфейсе для создания контента и управления им, поэтому создатель страницы графического интерфейса пользователя, а затем оболочка графического интерфейса пользователя вокруг чего-то похожего на традиционную систему Unix-репозиторий / SCCS. Эксперты CMS могут перечислить различия.
Итак, почему бы не создать несколько сценариев-оболочек для CVS или аналогичных программ, которые позволят вам управлять своим хранилищем по мере необходимости?
3. Эффективность системы I: используя CVS в качестве заполнителя для стороны хранилища вашей системы CMS, подумайте, насколько велик этот исходный код, и что он написан на «C», что дает гораздо более тонкий доступ и контроль к подсистемам, связанным с владением файлами и проблемами безопасности (а также со многими другими), по сравнению с доступом к nawk или любой оболочке. (Скомпилированный C выполняется намного быстрее, конечно, но в наши дни процессоры 3Ghz + не являются обязательным требованием соблюдать код)
4. эффективность системы II: Вы говорите, что хотите хранить в основном файлы типа XHTML 1.0 / CSS. Это серьезное препятствие для вашего проекта: awk является языком на основе reg-ex и не может эффективно анализировать XML-подобные данные. Вы достаточно притаились здесь, чтобы прочитать парсинг xml в bash ИЛИ сложные преобразования
Конечно, пост, который я действительно искал, я не могу найти! Ищите фразы вроде «друзья не позволяют друзьям делать XML в sed / awk / bash»; -)!
5. Re TinyTim и Blis: пересмотрите свое возражение против gawk / bash: эти 2 превосходных языка - это супернаборы nawk и ksh (88). В зависимости от того, насколько мало / сильно скрипт использует специфические функции gawk / bash, для простоты вам может понадобиться только изменить 'she-bang' в верхней части файла на #! / Bin / nawk, #! / bin / ksh ИЛИ более реалистично, внесите это изменение, а затем перепишите некоторый код для nawk / ksh. В худшем случае код gawk и bash так сильно зависят от определенных «фирменных» функций, которые переписать действительно непрактично. Это стоит посмотреть.
Для завершения картины также см. gawkxml .
Очевидно система gawk, но я сделал преобразование в nawk с некоторыми изменениями кода. Это сработало для моих нужд, но я не пытался исправить случай, когда самопроверкающийся код не работал; - (
EDIT
6. Наконец, посмотрите на ряд систем от оригинальных создателей awk в их классической книге «Язык программирования Awk», Глава 4 Отчеты и базы данных, «Система реляционных баз данных» И глава. 6, Маленькие языки. Там могут быть идеи для вас (однако, предварительно не запеченная CMS; -).
Итак, учитывая, что и perl, и python имеют встроенную в импортированные модули хорошую обработку XML, я думаю, вам нужно серьезно рассмотреть их, ИЛИ установить что-то вроде xmlstarlet (по ссылкам SO выше) и написать свою оболочку. системные оболочки для работы с ней.
Надеюсь, это поможет.