Ich habe zwei snmpd.conf-Dateien, eine auf einem Server, der funktioniert, und eine, die nicht funktioniert. Wie kann ich die beiden Konfigurationsdateien unterscheiden, während irrelevante Kommentare und Zeilenumbrüche entfernt werden?
linux
configuration
diff
Jldugger
quelle
quelle
level
! =)Antworten:
Um Leerzeilen und Zeilen, die nur Leerzeichen enthalten, zu vermeiden, zusätzlich zu identischen Zeilen, bei denen ein einziger Unterschied zwischen den vorangestellten Leerzeichen besteht ...
Zu diesem Zeitpunkt würde ich das wahrscheinlich in ein Skript schreiben und so etwas wie den ursprünglichen Vorschlag schreiben, der ein wenig lesbarer ist.
quelle
Wenn Sie sich mit vim einigermaßen auskennen , empfehle ich Ihnen nachdrücklich, vimdiff zu verwenden :
Dadurch wird eine vim-Sitzung mit zwei Fenstern mit einer Datei auf jeder Seite geöffnet. Hervorhebungen und Farben weisen auf Unterschiede zwischen den Dateien hin, und alle identischen Teile werden ausgeblendet (gefaltet, aber erweiterbar).
Wenn Sie dann Unterschiede von einer Datei zur anderen selektiv zusammenführen möchten, können Sie die folgenden Befehle verwenden:
(Betrachten Sie die "aktuelle Datei" als die, in der sich der Cursor befindet.)
^ W ^ W , um den Fokus vom Fenster einer Datei zum Fenster der anderen Datei zu ändern
] c , um mit Unterschieden zum nächsten Block zu gelangen
[c , um die Suche nach dem vorherigen Block mit Unterschieden umzukehren
do ( d iff o btain), um Änderungen von der anderen Datei in die aktuelle Datei zu übernehmen
dp ( d iff p ut), um Änderungen von der aktuellen Datei an die andere Datei zu senden
Hinweis: Sowohl do als auch dp funktionieren, wenn Sie sich in einem Block oder nur in einer Zeile unter einem Block befinden.
u zu u ndo
zo zum Aufklappen / Ausblenden von Text
zc zum erneuten Falten / Ausblenden von Text
zr wird beide Dateien vollständig entfalten (benutze : help fold für mehr Informationen zum Falten)
: diffupdate überprüft die Dateien erneut auf Änderungen
Wenn Sie geänderten Text verschieben oder Änderungen vornehmen, werden auch die jetzt identischen Teile der Dateien automatisch gefaltet.
Wenn Sie fertig sind, können Sie beide Dateien mit folgendem Befehl beenden und schreiben : xa!
Sie können Änderungen auch einzeln schreiben, beenden, verwerfen usw., so wie Sie es normalerweise mit vim tun würden.
Sie können alle gängigen vim-Befehle verwenden, um die Dateien nach Belieben zu bearbeiten. Ich habe nur die gebräuchlichsten und nützlichsten Befehle beschrieben, die Sie wahrscheinlich in einer vimdiff-Sitzung verwenden (im Gegensatz zu einem generischen vim-Befehl).
quelle
Beyond Compare ist das ultimative Werkzeug dafür!
Link: http://www.scootersoftware.com/
Verfügbar für Windows und Linux.
Jeff hat vor einiger Zeit einen guten Übersichtsartikel über das Tool geschrieben:
http://www.codinghorror.com/blog/archives/000454.html
quelle
Wenn Sie den Einzeiler von nima erweitern, können Sie dies als Shell-Funktion ausführen und in Ihrem .bashrc ablegen
wird (mit -u, weil ich Unified Diffs mag)
Wenn Sie GUI Diff Viewer mögen, ist meld nett und versteht revisionskontrollierte Verzeichnisse / Dateien.
quelle
Nachdem ich die Kommentare bereinigt habe, würde ich KDiff3 empfehlen, es ist ein ziemlich gutes Diff / Merge-Tool und du brauchst kein vim fu, um es zu benutzen :)
quelle
Es gibt vielleicht eine elegantere Methode, aber pragmatisch (und schnell):
quelle
Wenn Sie eine bash-ähnliche Shell verwenden, können Sie Folgendes versuchen:
Rufen Sie es dann folgendermaßen auf:
Sie können auch ändern,
diff
umvimdiff
odergvimdiff
die beide mit kommenvim
.quelle
Durch die Erweiterung der Xerxes-Lösung können Sie komplexere Tools verwenden, als
diff
die Unterschiede anzuzeigen.wdiff
wdiff
kann manchmal "zu schlau" sein, aber ich finde es oft nützlich, um einen kurzen Blick auf die Unterschiede zwischen Konfigurationsdateien zu werfen. Dieses Skript kann für die Ausgabe mit Farben verwendet werden:Auf Ubuntu und anderen Debian-basierten Systemen, kurz
apt-get install wdiff
bevor Sie dieses Skript verwenden.Meld
Meld ist eine nette GUI-Alternative, aber die "Textfilter" -Funktion hat einige Probleme. Anstatt die Textfilterung zu verwenden, entferne ich Kommentare vollständig, bevor die Ergebnisse in Meld angezeigt werden. Der Nachteil ist, dass die Dateien beim Vergleichen nicht mehr bearbeitet werden können. Hier ist ein einfaches Skript für die Verwendung von Meld:
quelle
Manchmal können mehrere zusätzliche gemeinsame Zeilen entfernt werden, indem Dateien vor dem Diff sortiert werden. Daher füge ich dem bereits Geschriebenen Folgendes hinzu:
Dies ist natürlich sinnvoll für Dateien, bei denen sich die Reihenfolge der Zeilen nicht auf den Inhalt auswirkt (seien Sie sich also bewusst).
quelle
Dies ist das gleiche wie bei Nima, filtert jedoch auch Leerzeilen heraus, wenn jemand dies wünscht.
(Ich würde auch Colordiff installieren, wenn möglich, und das anstelle von normalem Diff verwenden)
quelle
Ich verwende WinMerge http://winmerge.org, um Dateien zu unterscheiden, vorausgesetzt, ich muss sie auf meinen Computer herunterladen, aber es funktioniert für.
quelle