Zeigen Sie zwei Textdateien gleichzeitig nebeneinander an


21

Ich habe zwei Textdateien. Jede Zeile steht für eine Zeile in einer Sprache. Ich muss überprüfen, ob die Ausrichtung immer passt. Deshalb brauche ich ein Programm, das beide Textdateien gleichzeitig mit Zeilennummern anzeigt.

Ich habe versucht, diffuse, aber das versucht, die Dateien auszurichten - wenn aus Versehen zwei Zeilen gleich sind, funktioniert der gesamte zeilenweise visuelle Vergleich nicht.

Antworten:


28

Verwenden Sie Vim mit scrollbindset. Beispielsweise:

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

Bildbeschreibung hier eingeben

Mit scrollbind, wenn Sie in einem Fenster scrollen, scrollen die anderen gebundenen Fenster auch zugleich. Um Zeilennummern zu haben ~/.vimrc, reicht ein Minimum der folgenden zwei Zeilen aus:

set nocompatible
set number

Nicht , dass Sie benötigen eine vimrcfür diesen - es ganz von der Kommandozeile durchgeführt werden kann:

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

12

Wie wäre es mit einem Befehl aus den Anfängen von Unix?

pr -m file1 file2

Beispielsweise:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

Update: Mit können Sie die Ausgabe an die Größe Ihres Terminals anpassenless

pr -m file1 file2 | less

4
Wenn ich dies vorschlagen darf, leiten Sie die Ausgabe an less -N, um die Zeilennummern zusammen anzuzeigen. pr -m file1 file2 | less -N.
Sergiy Kolodyazhnyy

11

Über die GUI können Sie Folgendes versuchen meld:

Bildschirmfoto

Es ist nicht genau das, wonach Sie fragen, aber es sollte für Ihren Zweck genauso nützlich sein.

Zusätzliche Textabschnitte werden grün hervorgehoben, andere Textabschnitte werden blau hervorgehoben (und in anderen Textabschnitten werden zusätzliche Zeichen dunkler blau hervorgehoben).

Funktioniert auch für mehr als zwei Dateien gleichzeitig.


Ich mag & benutze meld, kdiff3, sogar sdiff; aber wenn ich nur zwei Dateien nebeneinander anzeigen möchte, die sich unterscheiden (sollen) (z. B. i18n-Übersetzungsressourcenpakete - die Eigenschaft stimmt überein, der Wert nicht; nach fehlenden Eigenschaften suchen), dann die Versuche, Übereinstimmungen auszurichten Linien & Markieren von Linien, die unterschiedlich sind, ist eigentlich ein Negativ.
Michael

@michael_n Ich bin ratlos zu verstehen, warum das negativ wäre. Vielleicht verpasse ich den Punkt, aber wenn Sie ihn verwenden meld, sollten Sie bemerkt haben, dass in Fällen wie dem Fall, in dem Sie Linien beschreiben, diese in einem helleren Blau und die spezifischen zusätzlichen Zeichen in einem dunkleren Blau hervorgehoben werden, so dass der genaue Unterschied sofort sichtbar wird . Oder vermisse ich etwas?
Kos

Sie haben vollkommen recht, und ich hätte es klarstellen sollen. das Problem ist , dass diese Werkzeuge keine Konfigurationsoption haben zu erwarten , dass bestimmte Unterschiede und ermöglichen sollten da sein (afaik). In einigen Fällen halten sie die gesamte Datei für zu unterschiedlich, als dass sie sich darum kümmern müssten, in einer Reihe zu stehen. Eine nützliche Option (in meinem Beispiel: msg.text = "Hello" vs msg.text = "Bonjour") wäre beispielsweise, einen Teil der beiden Dateien entweder durch "first N chars" oder durch regexp zu ignorieren: "^. * = "
michael

Eigentlich glaube ich, dass sdiff eine Option hat, die man durch reguläre Ausdrücke ignorieren kann (aber ich bin nicht positiv). Wenn es sich jedoch nur um Freiformtext aus dem Französischen und Englischen handelt, muss nichts hervorgehoben werden, und jeder Versuch, Zeilen zusammenzufügen, wäre - wie bereits erwähnt - negativ. Manchmal wollen wir nur Dateien nebeneinander sehen (und das ist der Kern der ursprünglichen Frage, so wie ich es verstanden habe).
Michael

@michael_n Eigentlich habe ich gerade den Sprachvergleich bemerkt, aus irgendeinem Grund dachte ich, dass sie ein allgemeineres Textvergleichstool benötigen. Wahrscheinlich hast du recht, ich sollte dies löschen, obwohl ich auch bedenke, dass Fragen mit so allgemeinem Titel wie diese normalerweise viele Besuche von Suchmaschinen anziehen (z. B. wenn ich Google "nebeneinander Ubuntu ablegen", ist dies derzeit die dritte Ergebnis). Also ist es vielleicht besser, wenn es in diesem Fall bleibt. Es sollte doch nicht wehtun. Die genaue (n) Antwort (en) bilden bereits die Spitze des Stapels.
Kos


0

Wenn Sie sich Übersetzungen ansehen , ist Poedit möglicherweise hilfreich. Es kann die beiden Texte nebeneinander anzeigen und ist für die Arbeit mit Übersetzungen gedacht.


1
Anstatt nur Links zur Lösung einzufügen, sollten Sie auch das "Wie" erläutern
Edward Torvalds

Dieser scheint auf die Arbeit mit gettext beschränkt zu sein.
Karneval
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.