Разработка новых вариантов diff и grep для обработки сложных структур данных

9 декабря 2011 года

На конференции администраторов крупных систем LISA (Usenix Large Installation System Administration) два исследователя из Дартмутского университета выступили (Архивная копия от 20 июня 2012 на Wayback Machine) с идеей создания расширенных вариантов утилит diff и grep для обработки сложных типов данных. В настоящее время утилиты ещё находятся на этапе создания работающих прототипов, доступен только восьмистраничный документ (Архивная копия от 23 июня 2016 на Wayback Machine) с подробным описанием сути проекта. Код будет открыт после завершения разработки. Работа ведётся при финансировании от компании Google и Министерства энергетики США.

Развиваемые в рамках проекта контекстно независимый вариант утилиты Grep (bgrep) и иерархический Diff (bdiff), ориентированы на разбор синтаксических блоков кода, вместо манипулирования однострочными записями. Таким образом bdiff и bgrep могут оперировать частями файлов конфигураций, логов и других наборов данных, состоящих из логически связанных многострочных блоков. В качестве примеров таких связанных блоков можно привести параметры сетевых интерфейсов в Cisco IOS или настройки виртуальных хостов Apache.

Для работы с такими связанными наборами данных стандартные diff и grep не подходят, так как являются слишком низкоуровневыми инструментами, не учитывающими структуры при оценке различий или организации поиска. При замене порядка следования настроек в блоке, обычная утилита diff отобразит наличие различий, в то время как фактически данные останутся неизменными. Например, в настройки может быть внесено всего два изменения, но за счет перемещения окружающих изменение данных, diff может отобразить десяток изменений, что существенно затрудняет выявление фактических отличий. В случае grep трудности связаны с невозможностью охватить в одном регулярном выражении нескольких элементов в рамках одного уровня вложенности структур или учесть данные, зависимые от определённого параметра.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Разработка новых вариантов diff и grep для обработки сложных структур данных», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.