Mam dwa pliki snmpd.conf, jeden na serwerze, który działa, a drugi nie. Jak mogę różnicować dwa pliki konfiguracyjne, usuwając nieistotne komentarze i nowe linie?
linux
configuration
diff
jldugger
źródło
źródło
level
! =)Odpowiedzi:
Aby uniknąć pustych linii i linii zawierających wyłącznie spacje, oprócz identycznych linii, które mają jedną różnicę dodanych spacji wiodących ...
W tym momencie jednak prawdopodobnie umieściłbym to w skrypcie i napisałem coś w rodzaju oryginalnej sugestii, która jest nieco bardziej czytelna.
źródło
Jeśli czujesz się komfortowo z vimem , zdecydowanie zachęcam do korzystania z vimdiff :
Spowoduje to otwarcie sesji vim z dwoma oknami, z jednym plikiem po każdej stronie. Podświetlenia i kolory wskażą różnice między plikami, a wszystkie identyczne części zostaną ukryte (złożone, ale rozwijane).
Następnie, jeśli chcesz selektywnie łączyć różnice między dwoma plikami, możesz użyć następujących poleceń:
(Rozważ „bieżący plik” jako ten, w którym znajduje się kursor)
^ W ^ W, aby zmienić fokus z okna jednego pliku na okno drugiego pliku
] c, aby przejść do następnego bloku z różnicami
[c, aby cofnąć wyszukiwanie poprzedniego bloku z różnicami
do ( d iff o btain), aby wprowadzić zmiany z innego pliku do bieżącego pliku
dp ( d iff p ut), aby wysłać zmiany z bieżącego pliku do innego pliku
Uwaga: Zarówno do, jak i dp działają, jeśli jesteś na bloku lub tylko jednym wierszu pod blokiem.
U z u ndo
zo, aby rozwinąć / ukryć tekst
zc, aby ponownie złożyć / ukryć tekst
zr całkowicie rozłoży oba pliki (użyj : help fold, aby uzyskać więcej informacji na temat składania)
: diffupdate ponownie przeskanuje pliki w poszukiwaniu zmian
Gdy zaczniesz przenosić zmieniony tekst lub wprowadzać zmiany, identyczne teraz części plików również się automatycznie zwiną.
Po zakończeniu możesz zamknąć i zapisać oba pliki za pomocą : xa!
Możesz także pisać, wychodzić, odrzucać zmiany itp., Jeden panel naraz, tak jak normalnie robisz z vimem.
Możesz użyć wszystkich typowych poleceń vima, aby dowolnie edytować pliki; Opisałem tylko najbardziej popularne i przydatne polecenia, których prawdopodobnie użyjesz w sesji vimdiff (w przeciwieństwie do ogólnej wersji vim).
źródło
Beyond Compare to najlepsze narzędzie do tego!
Link: http://www.scootersoftware.com/
Dostępne dla systemu Windows i Linux.
Jeff napisał jakiś dobry artykuł poglądowy na temat narzędzia jakiś czas temu:
http://www.codinghorror.com/blog/archives/000454.html
źródło
Rozszerzając na jednowarstwową nimę, możesz to zrobić jako funkcję powłoki i upuścić ją w swoim .bashrc
staje się (używając -u, ponieważ lubię zunifikowane różnice)
Jeśli podoba Ci się GUI diff viewers, meld jest fajny i rozumie pliki / pliki kontrolowane przez wersję.
źródło
Po wyczyszczeniu komentarzy radzę używać KDiff3, jest to całkiem dobre narzędzie do porównywania / scalania i nie potrzebujesz vim fu, aby go używać :)
źródło
Może to być bardziej elegancki sposób, ale pragmatycznie (i szybko):
źródło
Jeśli używasz powłoki podobnej do bash, możesz spróbować:
Następnie wywołaj to w ten sposób:
Możesz także zmienić
diff
navimdiff
lub zgvimdiff
których oba pochodząvim
.źródło
Rozszerzając rozwiązanie Xerxesa, możesz użyć bardziej wyrafinowanych narzędzi niż
diff
do wyświetlania różnic.wdiff
wdiff
czasami bywa „zbyt mądry”, ale często przydaje mi się szybki rzut oka na różnice między plikami konfiguracyjnymi. Ten skrypt może być używany do wyświetlania w kolorach:W Ubuntu i innych systemach opartych na Debianie, tuż
apt-get install wdiff
przed użyciem tego skryptu.Meld
Meld jest przyjemną alternatywą dla GUI, ale jego funkcja „Filtrowania tekstu” ma pewne problemy. Zamiast korzystać z filtrowania tekstu, usuwam komentarze całkowicie przed wyświetleniem wyników w Meld. Wadą jest utrata możliwości edycji plików podczas ich porównywania. Oto prosty skrypt do korzystania z Meld:
źródło
Czasami można usunąć kilka dodatkowych wspólnych wierszy, sortując pliki przed różnicą, więc dodałbym do tego, co już napisano:
ma to oczywiście sens w przypadku plików, w których kolejność linii nie wpływa na jej zawartość (więc należy pamiętać).
źródło
Jest to to samo, co jedna linijka nimi, ale odfiltruje również puste linie, jak ktoś poprosił.
(Jeśli to możliwe, zainstalowałbym colordiff i użyłbym tego zamiast zwykłego diff)
źródło
Używam WinMerge http://winmerge.org do różnicowania plików, oczywiście muszę ściągać je na moją maszynę, ale to działa.
źródło