Переглядайте два текстових файли одночасно поруч


21

У мене є два текстові файли. Кожен рядок являє собою рядок однією мовою. Мені потрібно перевірити, чи вирівнювання завжди підходить. Тому мені потрібна програма, яка відображає обидва текстові файли одночасно з номерами рядків.

Я спробував дифузно, але це намагається вирівняти файли - якщо випадково два рядки рівні, ціле візуальне зіставлення по лінійці не працює.

Відповіді:


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ви повинні помітити, що у таких випадках, як випадок, який ви описуєте, рядки виділяються світлішим синім кольором, а конкретні додаткові символи - темнішим синім, завдяки чому точна різниця виходить миттєво . Або я щось пропускаю?
kos

Ви абсолютно правильні, і я повинен був уточнити; проблема полягає в тому, що ці інструменти не мають можливості конфігурації очікувати і допускати, що певні відмінності повинні бути там (afaik). У деяких випадках вони вважають увесь файл занадто різним, щоб навіть намагатися скласти лінійку. Наприклад, корисним варіантом (з мого прикладу: msg.text = "Привіт" vs msg.text = "Bonjour") було б ігнорувати частину двох файлів або "першими N символами", або regexp: "^. * = "
Майкл

Насправді, я думаю, що у sdiff є можливість ігнорувати за допомогою regexp (але я не позитивний). Проте, якщо це лише текст у вільній формі з французької та англійської, немає необхідності нічого висвітлювати, і будь-яка спроба зіставлення рядків - як я вже згадувала - була б негативною. Іноді ми просто хочемо бачити файли поруч (і це суть оригінального питання, як я це зрозумів).
Майкл

@michael_n Насправді я просто помітив річ порівняння мови, чомусь спочатку подумав, що їм потрібен інструмент порівняння тексту загального призначення. Напевно, ви маєте рацію, я мушу видалити це, хоча я також вважаю, що питання з назвою настільки ж загалом, як це, як правило, залучають багато відвідувань із пошукових систем (наприклад, якщо я Google "подаю поруч Ubuntu", це зараз третій результат). Тож, можливо, краще, якщо він залишиться в цьому випадку. Адже це не повинно боліти. Точна відповідь (и) вже складає верхню частину стека.
kos


0

Якщо ви переглядаєте переклади, вам може здатися корисним Poedit . Він може відображати два тексти поруч для вас і створений для роботи з перекладами.


1
замість того, щоб просто вставляти посилання на рішення, вам слід пояснити це "як"
Едвард Торвальдс

Цей, здається, обмежений роботою з gettext.
carnendil
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.