Просмотр двух текстовых файлов одновременно

21

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

Я пробовал diffuse, но он пытается выровнять файлы - если случайно две строки равны, визуальное сравнение по всей строке не работает.

user1406177
источник

Ответы:

28

Используйте Vim, с scrollbindмножеством. Например:

vim -O +'windo set scrollbind' /etc/profile /etc/profile.pacnew

введите описание изображения здесь

Если scrollbindпри прокрутке в одном окне другие связанные окна также прокручиваются одновременно. Чтобы иметь номера строк, достаточно ~/.vimrcсодержать минимум две следующие строки:

set nocompatible
set number

Не то, что вам нужноvimrc для этого - это может быть сделано полностью из командной строки:

vim -NO +'set nu' +'windo set scrollbind' file1 file2 ...
Мур
источник
12

Как насчет команды с первых дней Unix?

pr -m file1 file2

Например:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

Обновление: вы можете подогнать вывод под размер вашего терминала, используяless

pr -m file1 file2 | less
Эдвард Торвальдс
источник
4
Если я могу предложить, передайте вывод, less -Nчтобы показать номера строк вместе. pr -m file1 file2 | less -N,
Сергей Колодяжный
11

Из графического интерфейса вы можете попробовать meld:

Скриншот

Это не совсем то, что вы просите, но это должно быть не менее полезным для ваших целей.

Дополнительные разделы текста будут выделены зеленым цветом, различные разделы текста будут выделены синим цветом (и аналогично в других разделах текста дополнительные символы будут выделены темно-синим цветом).

Работает также для более чем двух файлов одновременно.

кос
источник
Мне нравится & использовать meld, kdiff3, даже sdiff; но если я просто хочу просмотреть два файла рядом, которые (должны быть) различны (например, пакеты ресурсов перевода i18n - свойство совпадает, значение - нет; ищет отсутствующие свойства), тогда попытки выстроить соответствие линии и отметки линий, которые различны, на самом деле отрицательны.
Майкл
@michael_n Я не могу понять, почему это будет негативно. Может быть, я упускаю суть, но если вы используете, meldвы должны были заметить, что в таких случаях, как в случае, когда вы описываете, строки выделены более светлым синим цветом, а определенные дополнительные символы - синим, что дает точное различие сразу , Или я что-то упустил?
Кос
Вы абсолютно правы, и я должен был уточнить; проблема заключается в том , что эти инструменты не имеют опцию конфигурации , чтобы ожидать и допустить , что некоторые различия должны быть там (AFAIK). В некоторых случаях они считают весь файл слишком разным, чтобы даже не выстроиться в очередь. Например, полезной опцией (в моем примере: msg.text = "Hello" vs msg.text = "Bonjour") будет игнорирование части двух файлов с помощью "первых N символов" или регулярного выражения: "^. * = "
Майкл
На самом деле, я думаю, что у sdiff есть возможность игнорировать с помощью регулярного выражения (но я не уверен). Тем не менее, если это просто текст в свободной форме с французского и английского языков, нет необходимости выделять что-либо, и любая попытка сопоставить строки - как я уже говорил - была бы негативной. Иногда мы просто хотим видеть файлы рядом (и это, как я понял, суть исходного вопроса).
Майкл
@michael_n На самом деле я только что заметил, что такое сравнение языков, почему-то изначально я думал, что им нужен инструмент сравнения текста более общего назначения. Вероятно, вы правы, я должен удалить это, хотя я также считаю, что вопросы, названные так же обобщенно, как и этот, обычно привлекают множество посещений со стороны поисковых систем (например, если я Google "файл рядом с Ubuntu", это в настоящее время третий результат). Так что, может быть, лучше, если это останется в этом случае. В конце концов это не должно быть больно. Точный ответ (ы) уже составляют вершину стека.
Кос
5

В командной строке вы можете использовать

 paste file1 file2 | less -N
Флориан Диш
источник
0

Если вы смотрите на переводы, вы можете найти Poedit полезным. Он может отображать два текста рядом для вас и предназначен для работы с переводами.

Загрузка, пожалуйста подождите
источник
1
вместо того, чтобы просто вставлять ссылки на решение, вы должны объяснить это «как»
Эдвард Торвальдс,
Кажется, этот ограничивается работой с gettext.
Карнендил