planet dump + daily diffs = бред...

Это уже чрезмерный оптимизм. Если файлы отличаются на 3 гига, то дифф будет не меньше этих 3 гиг. А скорее все 10, при условии идентичности форматирования и сохранения порядка. В данном случае более вероятно около 300 гиг :slight_smile:

Заочно можно очень долго гадать.
Идентичные по сути xml могут отличаться форматированием кардинально.
Вот только несколько моментов:
Незначащие пробелы и переводы кареток:


<tag1><tag2></tag2></tag1>

идентично


   <tag1>
         <tag2>
         </tag2>
   </tag1>

Более того - это же идентично

<tag1><tag2/></tag1>

Можно использовать разные кодировки, можно использовать коды символов (“&32;” вместо простого пробела).
Ну и так далее…

Как вариант, стоит запостить по десятку первых строчек от исходного и получившегося файлов, тогда можно будет оценить хотя бы разницу в форматировании.

P.S. Даже разница в концах строк (2 символа под DOS/Windows и 1 под UNIX/Mac) даст больше, чем замеченные два процента, если средняя длина строки меньше 50 символов.

zgremlin, это все и так понятно

подскажите, чем диффнуть два 160 гб файла? первый несколько десятков миллионов строк совпали до символа, дальше meld выжрал всю оперативку и начал дико тормозить систему, пришлось прибить.

Обычный GNU diff не канает?

я уже писал, diff вываливается с фразой про недостаточность памяти

А если просто grep-ом посчитать кол-во основных тегов и сравнить?

Это как? Я, знаете ли, юрист по образованию :slight_smile: Про греп слышал, но юзать не умею :frowning:

Если не более одного тега на строку то

fgrep ‘<way’ dump1.xml | wc -l
fgrep ‘<way’ dump2.xml | wc -l

Ну типа такого:

grep -c “<node” dump.osm

Выдаст кол-во строк в файле, в которых встречается искомая подстрока.

Количество строк я получу, а как я пойму почему они исчезли? Не, тут нужен именно дифф…

Может, так:

Derive a change set between two planet files.

osmosis --read-xml file=“planet2.osm” --read-xml file=“planet1.osm” --derive-change --write-xml-change file=“planetdiff-1-2.osc”

ВО! Тема. Ща попробую, спасибо!