Я работаю с набором файлов конфигурации, и мне нужен способ выделять только отдельные записи при определении объектива Augeas.
Как я могу эффективно заявить, что «если то, что видит Авгий, еще не указано конкретно как извлечение, можно игнорировать»?
Я думал, что линза, которая явно не соответствует ни одной другой линзе в сочетании с объединением, могла бы работать, но я понятия не имею, как будет работать синтаксис.
Мой вариант использования будет следующим:
Я разбираю некоторые детали (комментарии, идентификатор скрипта, tag_summary, script_tag). Есть и другие строки - логические операторы, настраиваемые поля, которые существуют только в определенных случаях, и тому подобное, - которые не структурированы, и я не могу сразу писать для них извлечения.
# Description: Unpassworded bash account
include("revisions-lib.inc");
tag_summary = "The account 'account' has no password set. An attacker may use it to gain further privileges on this system
This account was probably created by a backdoor installed by a fake Linux Redhat patch. See http://www.k-otik.com/news/FakeRedhatPatchAnalysis.txt";
if(description)
{
script_id(15583);
script_version("$Revision: 17 $");
script_tag(name:"last_modification", value:"$Date: 2013-10-27 15:01:43 +0100 (Sun, 27 Oct 2013) $");
}
У Augeas целостный подход к синтаксическому анализу файлов. Каждый файл сопоставляется с регулярным выражением, генерируемым линзой. Файл анализируется полностью, и (в настоящее время) нет возможности игнорировать части файла.