J'ai deux fichiers snmpd.conf, un sur un serveur qui fonctionne et un qui ne fonctionne pas. Comment puis-je différencier les deux fichiers de configuration tout en supprimant les commentaires et les nouvelles lignes non pertinents?
linux
configuration
diff
jldugger
la source
la source
level
! =)Réponses:
Pour éviter les lignes vides et les lignes ne contenant que des espaces, en plus des lignes identiques qui ont une seule différence d'espaces de tête ajoutés ...
À ce stade, je mettrais probablement cela dans un script et j'écrirais quelque chose comme la suggestion originale qui est un peu plus lisible.
la source
Si vous êtes un peu à l'aise avec vim , je vous encourage fortement à utiliser vimdiff :
Cela ouvrira une session vim avec deux volets, avec un fichier de chaque côté. Les hautes lumières et la couleur indiqueront les différences entre les fichiers, et toutes les parties identiques seront cachées (pliées, mais extensibles).
Ensuite, si vous souhaitez fusionner de manière sélective les différences d'un fichier à l'autre, vous pouvez utiliser les commandes suivantes:
(Considérez que le "fichier actuel" est celui où se trouve le curseur)
^ W ^ W pour changer le focus d'une fenêtre de fichier à l'autre fenêtre de fichier
] c pour passer au bloc suivant avec des différences
[c pour inverser la recherche du bloc précédent avec des différences
faire ( d iff o btenir) pour apporter des changements de l'autre fichier dans le fichier en cours
dp ( d ssi p ut) pour envoyer les modifications du fichier actuel vers l'autre fichier
Remarque: les fonctions do et dp fonctionnent si vous êtes sur un bloc ou juste une ligne sous un bloc.
tu à u ndo
zo pour déplier / masquer le texte
zc pour replier / masquer le texte
zr dépliera complètement les deux fichiers (utilisez : aidez à plier pour en savoir plus sur le pliage)
: diffupdate analysera à nouveau les fichiers pour les changements
Lorsque vous commencez à déplacer du texte modifié ou à y apporter des modifications, les parties désormais identiques des fichiers se replient automatiquement également.
Lorsque vous avez terminé, vous pouvez quitter et écrire les deux fichiers avec : xa!
Vous pouvez également écrire, quitter, ignorer les modifications, etc., un volet à la fois, comme vous le feriez normalement avec vim.
Vous pouvez utiliser toutes les commandes vim courantes pour éditer les fichiers à volonté; Je n'ai décrit que les commandes les plus courantes et les plus utiles que vous êtes susceptible d'utiliser dans une session vimdiff (par opposition à une session générique vim).
la source
Beyond Compare est l'outil ultime pour cela!
Lien: http://www.scootersoftware.com/
Disponible pour Windows et Linux.
Jeff a écrit un bon article de synthèse sur l'outil il y a quelque temps:
http://www.codinghorror.com/blog/archives/000454.html
la source
En développant le one-liner de nima, vous pouvez le faire comme une fonction de coque et le déposer dans votre .bashrc
devient (en utilisant -u parce que j'aime les différences unifiées)
Si vous aimez les visualiseurs de différences GUI, meld est agréable et comprend les répertoires / fichiers contrôlés par les révisions.
la source
Après avoir nettoyé les commentaires, je conseillerais d'utiliser KDiff3, c'est un très bon outil de diff / fusion et vous n'avez pas besoin de vim fu pour l'utiliser :)
la source
Il pourrait y avoir une façon plus élégante de le faire, mais de manière pragmatique (et rapide):
la source
Si vous utilisez un shell de type bash, vous pouvez essayer ceci:
Ensuite, invoquez-le comme ceci:
Vous pouvez également changer
diff
pourvimdiff
ougvimdiff
avec les deuxvim
.la source
En étendant la solution de Xerxes, vous pouvez utiliser des outils plus sophistiqués que
diff
pour afficher les différences.wdiff
wdiff
peut être «trop intelligent» parfois, mais je le trouve souvent utile pour jeter un rapide coup d'œil aux différences entre les fichiers de configuration. Ce script peut être utilisé pour la sortie avec des couleurs:Sur Ubuntu et d'autres systèmes basés sur Debian, juste
apt-get install wdiff
avant d'utiliser ce script.Meld
Meld est une alternative intéressante à l'interface graphique, mais sa fonction de "filtrage de texte" a quelques problèmes. Au lieu d'utiliser le filtrage de texte, je supprime complètement les commentaires avant d'afficher les résultats dans Meld. L'inconvénient est de perdre la possibilité de modifier les fichiers tout en les comparant. Voici un script simple pour utiliser Meld:
la source
Parfois, plusieurs lignes communes supplémentaires peuvent être supprimées en triant les fichiers avant le diff, donc j'ajouterais à ce qui est déjà écrit ce qui suit:
cela a bien sûr un sens pour les fichiers où l'ordre des lignes n'affecte pas son contenu (alors soyez conscient).
la source
C'est la même chose que la doublure de nima, mais elle filtrera également les lignes vierges comme quelqu'un l'a demandé.
(J'installerais également colordiff si possible et l'utiliserais à la place du diff normal)
la source
J'utilise WinMerge http://winmerge.org pour différencier les fichiers, étant donné que je dois les tirer vers le bas sur ma machine, mais cela fonctionne pour.
la source