Ich möchte zwei Dateien zusammenführen, indem Sie Folgendes tun:
Das Problem hier ist, dass diff -u
mir nur eine Dateizeile mit Kontext gibt, während ich die gesamte Datei in einem einheitlichen Format ausgeben möchte.
Gibt es eine Möglichkeit, wie diff das machen kann?
Eine Option, die für Sie passen könnte,
sdiff
: Side-by-Side-Unterschiede von Dateien.
sdiff -o merged.file left.file right.file
Dort werden Sie gefragt, welche Zeilen Sie aus welcher Datei behalten möchten. Hit ?
und dann enter
für ein wenig Hilfe. Auch man sdiff
mit den detaillierten Waren.
(In meiner Distribution kommen diese im Paket "diffutils" [fedora, centos])
Wenn Sie den Prozess automatisieren müssen, sollten Sie util merge
ausprobieren, um Konflikte in den Dateien zu erkennen. Das könnte Sie jedoch auf Platz eins zurückführen.
Die einfache Antwort besteht darin, die -D-Markierung zu verwenden, um die Dateien zusammenzuführen und die Unterschiede mit C-Style #ifdef-Anweisungen zu umgeben.
Aus der Dokumentation:
%Vor%Sie können es wie folgt verwenden:
%Vor%Normalerweise öffne ich dann die zusammengeführte Datei in einem Editor und lösche die Konflikte manuell.
Sie können auch Optionen verwenden, um ein Ed-Skript usw. auszugeben.