LINUX.ORG.RU

Разобрать текст по шаблонам

 ,


0

1

Неосилил... Сам текст

subject /bin/cat o {
        /                               h
        /bin                            h
        /bin/cat                        rx
        /etc                            rx
        /etc/ld.so.cache                r
        /lib64/ld-2.15.so               x
        /lib64/libc-2.15.so             rx
        /usr                            h
        /usr/lib64/locale/locale-archive        r
        /var                            h
        +CAP_ALL
        bind    disabled
        connect disabled
        sock_allow_family all
}

subject /bin/zsh o {
        /                               h
        /bin                            rx
        -CAP_ALL
        sock_allow_family all
}

Надо положить в 1й список все subject (т.е. /bin/cat и /bin/zsh), а во второй все то, что лежит между {} соответственно. Смотрю сюда но просветлиния не приходит. Подсказки приветствуются.

regexp -all -inline {subject\s+(\S+)[^\{]*\{([^\}]*)\}} $data ?

А потом обработать 1,2 4,5 элементы.

// хотя по-моему лучше нормальный парсер)

anonymous
()
set file ... ; # путь к файлу с текстом
set list1 [list] ; set list2 [list] ; set list3 [list]

proc subject {a b c} {
	upvar list1 ls1 list2 ls2 list3 ls3
	lappend ls1 $a ; lappend ls2 $b ; lappend ls3 $c
}

source $file
qaqa ★★
()
Ответ на: комментарий от silver-bullet-bfg

Так и есть. Приведенный текст вполне себе тиклевый исходник. Определив команду subject, можно этот исходник выполнить. Команда subject сохраняет свои входные параметры в глобальные переменные.

qaqa ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.