Vous avez probablement besoin d'expliquer vos besoins un peu plus. Cependant, il est fort probable que vous pouvez faire ce que vous voulez avec la commande diff (avec un peu d'aide de tri et/ou de grep).
Supposons que vous avez deux fichiers: a.properties et b.properties
Si vous voulez simplement savoir si les fichiers sont différents de toute façon, vous pouvez utiliser
diff a.properties b.properties
Vous aurez n'obtient aucune sortie si elles sont identiques ou une liste de différences.
Si vous souhaitez une comparaison à un niveau plus sémantique, c'est-à-dire si les deux ensembles de propriétés sont identiques, vous devez en faire un peu plus. Les fichiers peuvent différer textuellement, mais signifient la même chose pour les programmes Java qui les utilisent. Par exemple, les propriétés peuvent apparaître dans un ordre différent. Il peut y avoir des lignes vides, d'autres espaces et des commentaires.
Si c'est le cas, cela vous importe-t-il si les commentaires sont identiques? Ils n'affecteront pas le fonctionnement de votre programme, mais ils ont une signification (et une valeur pour ceux qui lisent le fichier). Si cela ne vous dérange pas, effacez-les.
Vous ne vous souciez probablement pas des lignes vides car elles n'ont aucune signification.
Vous devez également gérer le cas suivant:
a.properties:
prop = value
b.properties:
prop=value
Encore une fois, différent textuellement (notez les espaces autour des égaux) mais ont la même signification en Java. En commençant simplement, supposons que les propriétés se produisent dans le même ordre.
Ignore lignes vides:
diff -B a.properties b.properties
poignée espace blanc aléatoire (par exemple.autour du signe égal)
diff -w a.properties b.properties
Combine tout cela:
diff -w -B a.properties b.properties
dépouilleront commentaires:
grep -v '^#.*$' a.properties > a.tmp
grep -v '^#.*$' b.properties > b.tmp
diff -w -B a.tmp b.tmp
rm a.tmp b.tmp
Permettre propriétés dans un ordre différent, les commentaires de la bande:
grep -v '^#.*$' a.properties | sort > a.tmp
grep -v '^#.*$' b.properties | sort > b.tmp
diff -w -B a.tmp b.tmp
rm a.tmp b.tmp
@Adamski - qu'en est-il des commentaires dans les fichiers de propriétés? –
cela montrera des différences entre les commentaires ainsi – pvgoddijn
@StephenC - grep -vE "^ $ |^#" travaillera pour vous – smilyface