Com calcular les diferències entre dos fitxers

Índex

A continuació descriurem dues maneres de calcular les diferències que hi ha entre dos fitxers de text. La primera consisteix en usar el programa diff i la segona en usar l'eina ediff de l'editor de text emacs. La diferència principal entre aquestes dues maneres de calcular les diferències és que diff les calcula sense la intervenció de l'usuari mentre que ediff permet explorar interactivament les diferències.

En tots dos casos suposarem que volem calcular les diferències entre els fitxers f1 i f2.

Usant diff

El programa diff calcula les diferències entre dos fitxers línia per línia. Per calcular les diferències entre els fitxers f1 i f2, cal escriure el següent:

diff f1 f2

Si el programa no escriu res pel canal estàndard de sortida, aleshores els dos fitxers són idèntics. Si escriu quelcom, els fitxers difereixen i la sortida indica exactament en quin punt. Per més informació sobre el format de la sortida de diff, consulteu el manual de GNU diffutils.

Algunes de les opcions de diff que us poden resultar d'utilitat són l'opció -b i l'opció -B que permeten ignorar les diferències en espais en blanc i en línies en blanc respectivament.

Usant l'eina ediff d'emacs

emacs és l'editor de text que recomanem. A més d'editar fitxers de text disposa d'un munt d'eines d'ajuda al desenvolupament de programes. Una d'aquestes eines és ediff. ediff permet comparar interactivament dos fitxers tot navegant per les regions en les que difereixen.

Per invocar ediff dins d'emacs cal triar l'opció del menú Tools -> Compare (Ediff) -> Two files, o bé fent M-x (M- vol dir prémer i deixar anar la tecla Esc i x és la tecla x) i escrivint ediff. En tots dos casos, harem d'introduir els noms dels fitxers que volem comparar, en el nostre exemple f1 i f2.

Un cop invocat ediff, l'emacs es posa en un mode especial d'edició en el qual hi ha una finestra de comandes i dues finestres que mostren els fitxers f1 i f2. Les comandes més usades són n per tal de veure les diferències en la regió següent i p per veure les diferències en la regió anterior. Dins d'una regió les diferències es destaquen mitjançant colors. Per acabar la sessió cal prémer q i confirmar que volem acabar. Per més informació, consulteu el manual d'ediff.


Valid XHTML 1.0 Transitional Valid CSS! Viewable With Any Browser