Probabilmente dovrai spiegare un po 'di più le tue esigenze. Tuttavia è molto probabile che tu possa fare ciò che vuoi con il comando diff (con un piccolo aiuto da sort e/o grep).
Supponiamo di avere due file: a.properties e b.properties
Se si vuole semplicemente sapere se i file sono diversi in qualsiasi modo, è possibile utilizzare
diff a.properties b.properties
Avrete non ottenere output se sono identici o un elenco di differenze.
Se si desidera un confronto su un livello più semantico, cioè, le due serie di proprietà sono identiche, è necessario fare un po 'di più. I file possono differire testualmente, ma significano la stessa cosa per i programmi Java che li usano. Ad esempio, le proprietà possono verificarsi in un ordine diverso. Possono esserci righe vuote, altri spazi bianchi e commenti.
Se questo è il caso, ti interessa se i commenti sono identici? Non avranno effetto sul funzionamento del tuo programma, ma hanno un significato (e valore per chi legge il file). Se non ti interessa, eliminali.
Probabilmente non ti importa delle righe vuote perché non hanno alcun significato.
È inoltre necessario per gestire il caso seguente:
a.properties:
prop = value
b.properties:
prop=value
Anche in questo caso, diversi testualmente (notare gli spazi intorno alle pari), ma hanno lo stesso significato in Java.
A partire da semplice, assumiamo che le proprietà si verifichino nello stesso ordine.
Ignora righe vuote:
diff -B a.properties b.properties
maniglia spazio bianco casuale (ad es.intorno il segno di uguale)
diff -w a.properties b.properties
Combinate tutto questo:
diff -w -B a.properties b.properties
striscia fuori commenti:
grep -v '^#.*$' a.properties > a.tmp
grep -v '^#.*$' b.properties > b.tmp
diff -w -B a.tmp b.tmp
rm a.tmp b.tmp
Consenti per immobili a un ordine diverso, commenti striscia:
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: che dire dei commenti nei file di proprietà? –
questo mostrerà le differenze tra i commenti pure – pvgoddijn
@StephenC - grep -vE "^ $ |^#" funzionerà per voi – smilyface