У меня есть два файла с небольшими отличиями. Обычный diff
покажет мне различия между файлами. С помощью -c
или -u
я могу добавить количество контекста для каждого столбца. Какие параметры можно передать в diff
, чтобы увидеть каждую неизмененную строку вместе с изменениями и получить diff как один большой лоток?
Как я могу разделить два файла с полным контекстом?
Ответ 1
Используйте параметр "-y" для полноэкранного выхода
diff -y file1 file2
Будет выдавать вам что-то вроде
* Lorem ipsum dolor sit amet, consectetuer adipiscing elit. * Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
* Praesent fringilla facilisis pede. * Praesent fringilla facilisis pede.
* Nulla sit amet tellus id massa luctus pellentesque. * Nulla sit amet tellus id massa luctus pellentesque.
* Pellentesque a neque nec elit aliquam congue. * Pellentesque a neque nec elit aliquam congue.
* Quisque rhoncus ultricies elit. * Quisque rhoncus ultricies elit.
* Pellentesque laoreet urna id arcu. * Pellentesque laoreet urna id arcu.
* Aenean non erat et elit egestas dictum. * Aenean non erat et elit egestas dictum.
* Proin ornare sem eget nulla. * Proin ornare sem eget nulla.
* Phasellus placerat convallis elit. * Phasellus placerat convallis elit.
* Donec ultricies metus non purus. * Donec ultricies metus non purus.
* Sed vel enim et nunc accumsan egestas. * Sed vel enim et nunc accumsan egestas.
* Cras eget elit in purus luctus ornare. * Cras eget elit in purus luctus ornare.
* In pharetra ligula sodales pede. <
* Morbi consectetuer mi vitae sem. * Morbi consectetuer mi vitae sem.
* Donec sollicitudin pretium erat. * Donec sollicitudin pretium erat.
* Cras facilisis nunc sed leo. * Cras facilisis nunc sed leo.
* Nunc varius ante sed nisi. * Nunc varius ante sed nisi.
> THIS SHOULDN'T BE HERE
> THIS SHOULDN'T EITHER!
* Aenean in quam sagittis est ornare ultricies. * Aenean in quam sagittis est ornare ultricies.
* Etiam dignissim scelerisque velit. * Etiam dignissim scelerisque velit.
* Mauris porta fringilla sapien. * Mauris porta fringilla sapien.
* Proin vitae nisl vitae mauris viverra tempor. * Proin vitae nisl vitae mauris viverra tempor.
* Maecenas quis arcu sed lorem mollis bibendum. * Maecenas quis arcu sed lorem mollis bibendum.
* Morbi sed turpis non risus molestie posuere. | * Morbi sed non risus molestie posuere.
* Curabitur id magna in nulla commodo tristique. * Curabitur id magna in nulla commodo tristique.
* Praesent quis nulla vel augue faucibus viverra. | * Praesent quis nulla BAD vel augue faucibus viverra.
* Sed interdum libero. | * Sed lacinia interdum libero.
> ANOTHER ADDITION
* Donec ultricies posuere arcu. * Donec ultricies posuere arcu.
* Etiam interdum auctor mi. * Etiam interdum auctor mi.
Ответ 2
Вы также можете переопределить поведение форматирования diff, чтобы получить желаемое поведение без использования бок-о-бока:
diff --new-line-format='+%L' --old-line-format='-%L' --unchanged-line-format=' %L' file1 file2
Эта команда покажет вам полный файл как контекст и будет самым близким в формате до diff -u file1 file2
Ответ 3
Решение состоит в том, чтобы установить размер контекста (аргумент -U), который больше самого файла:
diff -U 1000000 file1.txt file2.txt