Intereting Posts
Как отключить ускорение GPU в моем архиве? Как найти поддержку больших файлов? Lightdm: запуск среды рабочего стола в зависимости от того, какой пользователь вошел в систему Как настроить XFCE для обработки быстрых клавиш \ hotkeys на key-release \ вверх, а не нажатия клавиш Установите Mysql 5.6.4 или выше на веб-сервере с помощью CentOS / openSUSE с Plesk 10 Можно приостановить dd, поменять место назначения на более крупный диск и продолжить? Как я могу проверить разрешение на чтение файлов / proc / * / *? Рекомендуемые приложения для брандмауэра для Linux? Как просмотреть мой текущий пользователь / пароль в bash? Естественный порядок сортировки в Midnight Commander Разница между поведением setrlimit и лимитного стека Могу ли я сделать задержку доставки в Thunderbird или Evolution Отказ в доступе к PAM запрещен установить переменную, основанную на значении переменной среды Могу ли я запускать несколько устройств TKL на одном сервере (например, HP Microserver)?

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

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

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

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


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

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

сливаться

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