Com comparar dos fitxers de text amb Linux

Aquesta guia us mostrarà com utilitzar Linux per comparar dos fitxers i mostrar la seva diferència a la pantalla oa un fitxer.

No cal instal·lar cap programari especial per comparar fitxers amb Linux, però cal saber com obrir una finestra de terminal .

Com mostra la guia vinculada, hi ha moltes maneres d'obrir una finestra de terminal amb Linux. El més simple és prémer les tecles CTRL, ALT i T al mateix temps.

Creació d'arxius per comparar

Per seguir juntament amb aquesta guia, creeu un fitxer anomenat "fitxer1" i introduïu el text següent:

10 ampolles verdes situades sobre una paret

10 ampolles verdes situades sobre una paret

Si una ampolla verda caigués accidentalment

Hi haurien 9 ampolles verdes situades a la paret

Podeu crear un fitxer seguint aquestes instruccions:

  1. Obriu el fitxer escrivint el següent comandament: nano file1
  2. Escriviu el text a l'editor de nano
  3. Premeu CTRL i O per desar el fitxer
  4. Premeu CTRL i X per sortir del fitxer

Ara creeu un altre fitxer anomenat "file2" i introduïu el text següent:

10 ampolles verdes situades sobre una paret

Si 1 ampolla verda caigués accidentalment

Hi havia 9 ampolles verdes situades a la paret

Podeu crear un fitxer seguint aquestes instruccions:

  1. Obriu el fitxer escrivint l'ordre següent: nano file2
  2. Escriviu el text a l'editor de nano
  3. Premeu CTRL i O per desar el fitxer
  4. Premeu CTRL i X per sortir del fitxer

Com comparar dos fitxers amb Linux

L'ordre utilitzat a Linux per mostrar les diferències entre dos fitxers s'anomena comanda diff.

La forma més senzilla de la comanda diff és la següent:

fitxer diff file1

Si els fitxers són iguals, no hi haurà cap sortida quan s'utilitzi aquesta comanda, però, ja que hi ha diferències, veureu resultats similars als següents:

2,4c2,3

<10 ampolles verdes situades a la paret

...

> Si 1 ampolla verda caigués accidentalment

> Hi hauria haver 9 ampolles verdes situades a la paret

Inicialment, la sortida pot semblar confusa, però una vegada que enteneu la terminologia, és bastant lògica.

Usant els vostres propis ulls, podeu veure que les diferències entre els 2 fitxers són els següents:

La sortida de la comanda diff mostra que entre les línies 2 i 4 del primer fitxer i les línies 2 i 3 del segon fitxer hi ha diferències.

A continuació, enumera les línies de 2 a 4 del primer fitxer seguit de les dues línies diferents del segon fitxer.

Com mostrar només si els fitxers són diferents

Si només voleu saber si els fitxers són diferents i no us interessa quines línies són diferents, podeu executar el següent comandament:

diff -q file1 file2

Si els fitxers són diferents, es mostrarà el següent:

Els fitxers file1 i file2 difereixen

Si els fitxers són iguals, no es mostrarà res.

Com mostrar un missatge si els fitxers són iguals

Quan executeu una comanda, voleu saber que ha funcionat correctament, de manera que voleu que es mostri un missatge quan executeu la comanda diff independentment de si els fitxers són iguals o diferents

Per aconseguir aquest requisit mitjançant l'ordre diff, podeu utilitzar el següent comandament :.

diff -s file1 file2

Ara, si els fitxers són iguals, rebrà el missatge següent:

Els fitxers file1 i file2 són idèntics

Com produir les diferències Un cop a banda

Si hi ha moltes diferències, pot convertir-se ràpidament en confús quant a quines diferències realment existeixen entre els dos fitxers.

Podeu canviar la sortida de l'ordre diff per tal que els resultats es mostrin un al costat de l'altre. Per fer-ho, executeu el següent comandament:

diff -y file1 file2

La sortida del fitxer utilitza el Símbol per mostrar una diferència entre les dues línies, un per mostrar una línia que s'ha afegit.

Curiosament, si executeu l'ordre usant els nostres fitxers de demostració, totes les línies es mostraran tan diferents a excepció de l'última línia del fitxer 2 que es mostrarà que s'ha eliminat.

Restringir les amples de la columna

Quan es comparen dos fitxers un al costat de l'altre, pot ser difícil de llegir si els fitxers tenen moltes columnes de text.

Per restringir una sèrie de columnes, utilitzeu l'ordre següent:

diff - width = 5 file file2

Com ignorar diferències de cas en comparar fitxers

Si voleu comparar dos fitxers però no us importa si el cas de les lletres és el mateix entre els dos fitxers, podeu utilitzar el següent comandament:

diff -i file1 file2

Com ignorar l'espai blanc final al final d'una línia

Si al comparar els fitxers es nota una gran quantitat de diferències i les diferències són causades per l'espai en blanc al final de les línies, podeu ometre-les com a modificacions executant l'ordre següent:

diff -Z file1 file2

Com ignorar totes les diferències d'espai blanc entre dos fitxers

Si només us interessa el text d'un fitxer i no us preocupa si hi ha més espais en un que l'altre, podeu utilitzar el següent comandament:

fitxer diff -w file1

Com ignorar línies en blanc en comparar dos fitxers

Si no us importa que un sol fitxer tingui línies en blanc addicionals, podeu comparar els fitxers amb l'ordre següent:

diff -B file1 file2

Resum

Podeu trobar més informació llegint el manual de l'ordre diff.

home dif

La comanda diff es pot utilitzar de la forma més simple per mostrar les diferències entre dos fitxers, però també podeu utilitzar-lo per crear un fitxer diff com a part d'una estratègia de parchement tal com es mostra en aquesta guia al comandament de parche de Linux .

Una altra ordre que podeu utilitzar per comparar fitxers és l'ordre cmp que mostra aquesta guia . Això compara els fitxers byte by byte.