Przeglądaj dwa pliki tekstowe jednocześnie


21

Mam dwa pliki tekstowe. Każda linia reprezentuje linię w jednym języku. Muszę sprawdzić, czy wyrównanie zawsze pasuje. Dlatego potrzebuję programu, który wyświetla oba pliki tekstowe jednocześnie z numerami linii.

Próbowałem rozproszyć, ale to próbuje wyrównać pliki - jeśli przez przypadek dwie linie są równe, całe wizualne porównanie linii nie działa.

Odpowiedzi:


28

Użyj Vima, z scrollbindzestawem. Na przykład:

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

wprowadź opis zdjęcia tutaj

Za pomocą scrollbind, jeśli przewijasz w jednym oknie, inne powiązane okna również przewijają się w tym samym czasie. Aby mieć numery ~/.vimrcwierszy, wystarczy minimum dwóch następujących wierszy:

set nocompatible
set number

Nie, że trzebavimrc do tego - może być wykonane w całości z linii poleceń:

vim -NO +'set nu' +'windo set scrollbind' file1 file2 ...

12

Co powiesz na komendę z wczesnych lat Uniksa?

pr -m file1 file2

Na przykład:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

Aktualizacja: Możesz dopasować dane wyjściowe do rozmiaru terminala, używającless

pr -m file1 file2 | less

4
Jeśli mogę to zasugerować, potokuj wyjście, less -Naby pokazać razem numery linii. pr -m file1 file2 | less -N.
Sergiy Kolodyazhnyy

11

Z GUI możesz spróbować meld:

zrzut ekranu

Nie jest to dokładnie to, o co prosisz, ale powinno być tak samo użyteczne dla twojego celu.

Dodatkowe sekcje tekstu zostaną podświetlone na zielono, różne sekcje tekstu zostaną wyróżnione na niebiesko (podobnie jak w różnych sekcjach tekstu dodatkowe znaki zostaną wyróżnione na ciemnoniebiesko).

Działa również dla więcej niż dwóch plików jednocześnie.


Lubię jak i używam meld, kdiff3, nawet sdiff; ale jeśli chcę po prostu wyświetlić obok siebie dwa pliki, które są (powinny być) różne (np. pakiety zasobów translacji i18n - właściwość jest zgodna, wartość nie; szukanie brakujących właściwości), wówczas próby dopasowania do szeregu linie i zaznacz linie, które są różne, w rzeczywistości są ujemne
Michael

@michael_n Nie mogę zrozumieć, dlaczego byłoby to negatywne. Być może nie rozumiem tego, ale jeśli użyjesz meld, powinieneś zauważyć, że w przypadkach takich jak opisywany przez ciebie linie są podświetlone jaśniejszym niebieskim, a konkretne dodatkowe znaki ciemniejszym niebieskim, dzięki czemu natychmiast pojawia się dokładna różnica . A może coś mi brakuje?
Kos

Masz absolutną rację i powinienem był wyjaśnić; problemem jest to, że narzędzia te nie mają opcji konfiguracyjnych, aby oczekiwać i pozwolić pewne różnice powinny być tam (AFAIK). W niektórych przypadkach uważają, że cały plik jest zbyt inny, aby nawet zawracać sobie głowę ustawieniem się w kolejce. Np. Użyteczną opcją (z moim przykładem: msg.text = "Hello" vs msg.text = "Bonjour") byłoby zignorowanie części dwóch plików przez „pierwsze N ​​znaków” lub regexp: „^. * = "
Michał

Właściwie myślę, że sdiff ma opcję ignorowania przez wyrażenie regularne (ale nie jestem pozytywny). Jeśli jednak jest to tylko dowolny tekst z francuskiego i angielskiego, nie trzeba niczego wyróżniać, a każda próba dopasowania linii - jak wspomniałem - byłaby negatywna. Czasami chcemy po prostu widzieć pliki obok siebie (i to jest istota pierwotnego pytania, tak jak je rozumiem).
Michael

@ michael_n Właściwie właśnie zauważyłem rzecz dotyczącą porównywania języków, z jakiegoś powodu początkowo myślałem, że potrzebują bardziej ogólnego narzędzia do porównywania tekstu. Prawdopodobnie masz rację, powinienem to usunąć, choć uważam również, że pytania zatytułowane są tak ogólne, jak to, które zwykle przyciągają wiele odwiedzin z wyszukiwarek (np. Jeśli Google „Plik obok siebie Ubuntu” jest obecnie trzeci wynik). Może więc lepiej, jeśli pozostanie w tym przypadku. W końcu to nie powinno boleć. Dokładne odpowiedzi już u góry stosu.
Kos


0

Jeśli szukasz tłumaczeń, może Ci się przydać Poedit . Może wyświetlać dwa teksty obok siebie i jest przeznaczony do pracy z tłumaczeniami.


1
zamiast wklejać linki do rozwiązania, powinieneś to również wyjaśnić „jak”
Edward Torvalds

Ten wydaje się być ograniczony do pracy z gettext.
carnendil
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.