Есть ли сжатый бок о бок diff формат?

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

Унифицированные различия позволяют мне видеть подробные различия, но это делает ручное сравнение с глазными яблоками. Различия между соседями кажутся более полезными для сравнения, но также добавляют тысячи неизменных строк. Есть ли способ получить преимущество обоих миров?

Обратите внимание, что эти файлы журнала генерируются программой xscope которая является программой, которая контролирует данные протокола Xorg. Я ищу инструменты общего назначения, которые можно применять к ситуациям, аналогичным описанным выше, а не специализированным средствам анализа журнала доступа к веб-серверу, например.


Два примера файлов журнала доступны по адресу http://lekensteyn.nl/files/qemu-sdl-debug/ ( log13 и log14 ). Команда предварительного процессора может быть найдена в xscope-filter который удаляет временные метки и другие мелкие детали.

3 Solutions collect form web for “Есть ли сжатый бок о бок diff формат?”

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

сливаться

Meld – это графический интерфейс, но он отлично справляется с отображением различий между файлами. Он больше ориентирован на разработку программного обеспечения с такими функциями, как возможность переместить изменения с одной стороны на другую, чтобы объединить изменения, но может использоваться как просто инструмент для разбора по сторонам.

ss of meld

ss подсветки кода meld

SDiff

Я использовал этот инструмент уже много лет. Обычно я запускаю его со следующими переключателями:

 $ sdiff -bBWs file1 file2 
  • -b Игнорировать изменения в размере пробелов.
  • -W Игнорировать все пробелы.
  • -B Игнорировать изменения, чьи строки пустые.
  • -s Не выводить общие строки.

Часто с файлами журналов вам нужно увеличить ширину столбцов, вы можете использовать -w <num> чтобы сделать экран более широким.

другие инструменты, которые я использую и использую

Diffc

Diffc – это скрипт python, который раскрашивает унифицированный вывод diff.

 $ diffc [OPTION] FILE1 FILE2 

ss diffc

vimdiff

Vimdiff , вероятно, так хорош, если не лучше, чем meld, и его можно запустить с терминала. Я всегда забываю использовать его, хотя для меня это хороший показатель того, что я нахожу инструмент немного трудным для повседневного использования. Но YMMV.

ss vimdiff

В настоящее время я использую бок о бок diff с grep, фильтруя разные строки:

 diff -y -W250 log.txt log2.txt | expand | \ grep -E -C3 '^.{123} [|<>]( |$)' | colordiff | less -rS 
  • Опция -W250 делает выход более широким, чтобы я мог видеть больше данных.
  • expand необходимо для преобразования вкладок в пробелы
  • -C3 добавляет три строки контекста к выходу grep.
  • ^.{123} соответствует половине данных перед параллельными маркерами.
  • colordiff делает вывод красивее
  • less -rS позволяет интерпретировать цвета ANSI ( -r ) и предотвращать завернутые строки ( -S ).

Это взлом, альтернативы приветствуются.

Никто еще не упомянул icdiff ? Здорово! Pic говорит сам за себя: icdiff

  • Total Commander «сравнивает контент», как альтернатива?
  • Игнорировать все, кроме текста, при сравнении файлов с diff?
  • Использование diff для отображения как содержимого новых файлов, так и создания новых пустых файлов
  • diff сообщает, что два файла отличаются друг от друга, хотя они одинаковы!
  • Что означают цифры в строке «@@» на выходе diff?
  • Рекурсивно сравнить два каталога с diff-r без вывода на неработающие ссылки
  • Сравните два каталога, но только часть имени файла
  • Минимальная разница между двумя текстами
  • Оценить различия между двумя файлами
  • Что означает тире «-» в командной строке Unix?
  • Как показать, какой файл отличается от других
  • Linux и Unix - лучшая ОС в мире.