The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

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

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

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

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

  1. Главная ссылка к новости (http://www.itworld.com/softwar...)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: grep, diff
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, Crazy Alex, 16:42, 09/12/2011 [ответить] [смотреть все]     [к модератору]
  • –7 +/
    давно пора, в общем-то - построчные текстовые форматы много где умерли, а для ма... весь текст скрыт [показать]
     
     
  • 2.2, Аноним, 16:46, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –11 +/
    Где ты в никсах видел ini-файлы Текстовые файлы нигде не умерли, кроме твоего б... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.4, Sokoloff, 17:03, 09/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +5 +/
    Samba, mySql, openssl, git то что у них расширение не ini не меняет формат ... весь текст скрыт [показать]
     
     
  • 4.20, Аноним, 00:25, 10/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Вы так пишете как будто примитивный общий формат конфигурационных файлов сразу ж... весь текст скрыт [показать]
     
     
  • 5.32, Michael Shigorin, 01:31, 11/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Да при чём тут дотфайлы А этот формат и впрямь называется ini-style ... весь текст скрыт [показать]
     
  • 5.44, Аноним, 14:31, 12/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Впервые он начал широко использоваться именно в INI Дотфайлы - это такие файлы,... весь текст скрыт [показать]
     
  • 2.10, Аноним, 19:10, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Напротив, много где умерли нетекстовые форматы.
     
     
  • 3.15, Аноним, 22:07, 09/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Речь шла не о текстовых форматах вообще, а о построчных текстовых форматах ... весь текст скрыт [показать]
     
  • 3.18, Аноним, 00:12, 10/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Ага, на OSM сперва ушиблись и стали делать карту в XML А когда карта планеты ст... весь текст скрыт [показать]
     
     
  • 4.28, Аноним, 11:51, 10/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    XML вообще уродливый костыль костылей Не зря вон МежДелМаш производит аппаратны... весь текст скрыт [показать]
     
  • 1.3, Michael, 17:01, 09/12/2011 [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    Для кода такие тулзы были бы весьма полезны, а то сделаешь форматирование или коммментарий добавишь и сидишь, в патчах разбираешься, какое изменение существенно, какое - нет.
     
     
  • 2.5, fi, 17:36, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    на форматирование помогает ключик -w :)
     
     
  • 3.6, vayerx, 17:54, 09/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    форматирование не всегда ограничевается расстановкой пробелов ;)
     
  • 3.7, Michael, 17:55, 09/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    При разбиении длиной строки на несколько, или, наоборот, при слиянии - не очень ... весь текст скрыт [показать]
     
  • 1.8, Аноним, 18:19, 09/12/2011 [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Успехов конечно авторам, но я думаю что это невозможно, будет слишком сложно и н... весь текст скрыт [показать]
     
     
  • 2.9, Муха, 19:03, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +10 +/
    > будет слишком сложно и не надёжно этим пользоваться.

    Да не парьтесь, сейчас весь софт такой

     
  • 2.11, BratSinot, 20:55, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Даже если и будет сложно пользоваться, быстрее будет один раз разобраться и экон... весь текст скрыт [показать] [показать ветку]
     
  • 2.38, Crazy Alex, 18:09, 11/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    А не надо пытаться обработать все мыслимые случаи - простыми вариантами к приме... весь текст скрыт [показать] [показать ветку]
     
  • 1.12, Аноним, 21:23, 09/12/2011 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Почему LISA, если правильно ULISA?
     
     
  • 2.14, а, 21:54, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Нет, Usenix — это конференция.
     
  • 1.13, gaga, 21:53, 09/12/2011 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    как только не извращаются люди, лишь бы не принимать какой-нибудь унифицированный текстовый формат описания данных, вроде JSON или какого-нибудь варианта S-expressions.
     
     
  • 2.16, Аноним, 22:09, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Ну переставит вам какая-нибудь софтина строки в JSONе - сами же извиняться к авт... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.29, Аноним, 11:52, 10/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Пошлем-ка мы такую софтину в dev null по-быстрому, пока никто не видел ... весь текст скрыт [показать]
     
  • 2.17, axe, 23:52, 09/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Как раз таки про него вспомнил Как народ смотрит на то, что бы конфиги были в д... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, all_glory_to_the_hypnotoad, 02:08, 10/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    у бинда конфиг перл стайл, си стайл, но никак не json
     
  • 3.31, Alexander Yastrebov, 15:59, 10/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Я вам напомню одно большое ограничение JSON в этом плане - в нем нет комментарие... весь текст скрыт [показать]
     
     
  • 4.36, anonimous, 15:33, 11/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    http ru wikipedia org wiki JSON D0 A1 D1 80 D0 B0 D0 B2 D0 BD D0 B5 D0 BD D0 ... весь текст скрыт [показать]
     
     
  • 5.37, Alexander Yastrebov, 15:38, 11/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Уверен http json org Хотя никто не мешает сделать парсер с поддержкой комм... весь текст скрыт [показать]
     
  • 3.39, Crazy Alex, 18:15, 11/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Джейсон - неудобный формат для писания руками Слишком много кавычек, не прощает... весь текст скрыт [показать]
     
  • 2.22, all_glory_to_the_hypnotoad, 02:07, 10/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    потому что JSON гогно А действительно унифицированные форматы описания данных ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.35, gaga, 13:39, 11/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    они не человекочитаемые и очень тяжелые
     
     
  • 4.41, all_glory_to_the_hypnotoad, 00:28, 12/12/2011 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    это смотря как писать, xml можно использовать вполне няшно Кроме xml есть други... весь текст скрыт [показать]
     
  • 4.45, Аноним, 14:33, 12/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > они не человекочитаемые и очень тяжелые

    JSON тоже.

     
  • 1.19, Сергей, 00:15, 10/12/2011 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
      Слижком сложно все будет, а почему бы не внести предложение все конфиги хранить в xml к примеру...
     
     
  • 2.21, Deffic, 01:04, 10/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +5 +/
    Прошу прощение за оффтопик, но XML Конфиг - это API между человеком и програм... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.26, poherly, 07:38, 10/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > exWinAdmins

    почему ex ?

     
  • 2.24, nuclight, 02:42, 10/12/2011 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    >   Слижком сложно все будет, а почему бы не внести предложение
    > все конфиги хранить в xml к примеру...

    Так потом разницу между XML обычным diff и не посмотреть, о чем и новость собственно.

    P.S. Собсно это одна из многих причин, по которой XML должен умереть, но это тема для срача, а не для новости

     
     
  • 3.33, Michael Shigorin, 01:36, 11/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    >> Слижком сложно все будет, а почему бы не внести предложение
    >> все конфиги хранить в xml к примеру...

    Как и отметили, это не для людей.

    https://lh4.googleusercontent.com/-30fhF6xRNf4/Ttub-IyL1RI/AAAAAAAAA-g/ehOfeEK

    > Так потом разницу между XML обычным diff и не посмотреть, о чем
    > и новость собственно.

    Попадался на глаза xmldiff, но так уже и не помню -- дошло до него или проще обошлись...

    > P.S. Собсно это одна из многих причин, по которой XML должен умереть,
    > но это тема для срача, а не для новости

    Да пускай себе живёт, только бы не пытались его скотчем примотать ко всему подряд, невзирая на осмысленность.

     
  • 3.47, виндотролль, 12:54, 14/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Посмотреть. Это даже тривиальная, в современных реалиях, задача. Вот только, парсинг требуется. Хотя, это не проблема при сравнении конфигов, размер которых вряд-ли превысит мегабайт.
    Проблема с ХМЛ другая — менее удобно для человека
     
  • 1.27, Аноним, 11:32, 10/12/2011 [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Не думаю, что сабж будет сильно популярен Преимущество теплых ламповых grep dif... весь текст скрыт [показать]
     
     
  • 2.30, Аноним, 11:54, 10/12/2011 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Ковровые бомбардировки квадратноколесными велосипедами вообще повсеместно вошли ... весь текст скрыт [показать] [показать ветку]
     
  • 2.34, Michael Shigorin, 01:38, 11/12/2011 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    > Преимущество теплых ламповых grep/diff/sed в простоте [...] и универсальности

    См. тж. "full exploitation": http://lwn.net/Articles/411845/

     
     
  • 3.43, evkogan, 08:23, 12/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    >> Преимущество теплых ламповых grep/diff/sed в простоте [...] и универсальности
    > См. тж. "full exploitation": http://lwn.net/Articles/411845/

    Нифига они не универсальны, постоянно приходится извращаться с grep'ом многострочных форматов. Последний раз сочинял скрипт для grep'анья вывода "multipath -l"
    Если в результате проекта можно будет легко grep'ать такое, без наколеночного костыля, будет класно.

     
     
  • 4.46, Michael Shigorin, 16:02, 12/12/2011 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    >>> Преимущество теплых ламповых grep/diff/sed в простоте [...] и универсальности
    >> См. тж. "full exploitation": http://lwn.net/Articles/411845/
    > Нифига они не универсальны, постоянно приходится извращаться с grep'ом
    > многострочных форматов.

    Вы, может, немного не поняли.  Кофе они тоже не варят, но вот multiline regex умеют. :) (хотя иногда и впрямь проще разобрать | while read line; do case "$line" in ... и понеслась с выставлением флажков, угу -- если не разводить скрипты на sed/awk/perl/$etc)

     
  • 2.40, Crazy Alex, 18:18, 11/12/2011 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Ровно также выучите один язык задания правил поиска тегов - и вперёд. И хоть xml, хоть json,хотьещё что - у ваших ног. Вплоть до бинарных форматов, кстати, если разумно описать. Регэкспы же как-то освоили? А эта штука попроще будет.

    При этом учтите, что на все основные форматы правила парсинга напишут за вас, вам останется только задавать что-то наподобие CSS селекторов - где именно смотреть или выкусывать хотите. Так что для подавляющего большинства случаев вообще всё примитивно будет.

     
  • 1.42, lucentcode, 03:18, 12/12/2011 [ответить] [смотреть все]    [к модератору]  
  • +/
    Давно пора. Очень не хватает. Надеюсь, эти фичи быстро интегрируют и с популярным текстовыми редакорами и IDE.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor