Разработаны версии diff и grep, учитывающие структуры данных

Специалисты из Университета Дартмута (Dartmouth College) представили на проходящей в эти дни в Бостоне (Канада) конференции USENIX LISA (Large Installation System Administration) 2011 усовершенствованные варианты классических UNIX-утилит grep и diff, предназначенные для обработки более сложных данных.Аспирант Гэбриэл Вивер (Gabriel Weaver) и профессор Шон Смит (Sean Smith) рассказали про BGrep («ориентированный на блоки grep») и BDiff («ориентированный на блоки diff»), которые позволяют обрабатывать данные не построчно, как это делают традиционные инструменты, а блоками. Эти блоки определяются структурами данных, хранимыми в специальной библиотеке шаблонов.Авторы новых инструментов говорят, что их разработки призваны заметно расширить возможности обработки различных «сложных» данных (не обычных логов, где каждая запись хранится в виде строки определенного формата) — например, от операционной системы Cisco IOS: «Для таких данных утилиты вроде diff оказываются слишком низкоуровневыми. Инструмент diff не учитывает структуру языка, на котором записаны данные, где вы хотите обнаружить отличия». Порой diff находит множество отличий, которые в действительности (логически) могут относиться к единственному изменению — просто «разбросанному» по разным строкам. BDiff призван решить этот недостаток в diff. Аналогично — BGrep для grep.Работа частично финансировалась компанией Google и Министерством энергетики США.Научная статья авторов с обзором bgrep и bdiff доступа в PDF (англ. яз).

©  nixp