Чтобы использовать визуальные различия, вы можете попробовать DiffMerge . Его наборы правил и опций обеспечивают индивидуальное поведение.
С точки зрения командной строки вы можете использовать опцию --ignore-matching-lines=RE
для diff
, например:
diff -d -I '^#' -I '^ #' file1 file2
Обратите внимание, что регулярное выражение должно соответствовать соответствующей строке в обоих файлах, и оно соответствует каждой измененной строке в блоке, чтобы работать, в противном случае оно все равно покажет разницу.
Используйте одинарные кавычки, чтобы защитить шаблон от расширения оболочки и экранировать символы, зарезервированные для регулярных выражений (например, скобки).
Мы можем прочитать в diffutils
руководстве:
Однако -I
игнорирует только вставку или удаление строк, которые содержат регулярное выражение, если каждая измененная строка в блоке (каждая вставка и каждое удаление) соответствует регулярному выражению.
Другими словами, для каждого невосполнимого изменения diff
печатает полный набор изменений в его окрестностях, включая игнорируемые. Вы можете указать более одного регулярного выражения для игнорируемых строк, используя более одной опции -I
. diff
пытается сопоставить каждую строку с каждым регулярным выражением, начиная с последнего заданного.
Это поведение также хорошо объясняется armel здесь .