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.

user1406177
quelle

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 ...
muru
quelle
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
Edward Torvalds
quelle
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.

kos
quelle
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
5

In der Befehlszeile können Sie verwenden

 paste file1 file2 | less -N
Florian Diesch
quelle
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.

Laden, bitte warten
quelle
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