Paano Paghambingin ang Dalawang Mga File sa Linux

How Compare Two Files Linux



Kung nais mong ihambing ang dalawang mga file at maintindihan ang pagkakaiba, tumawag ang isang utos naiiba Ginagamit. Ang gabay na ito ay nakatuon sa pagbibigay sa iyo ng paggamit ng naiiba utos na may iba't ibang mga pagpipilian upang makuha ang pagkakaiba sa pagitan ng dalawang mga file.

Kaya, paano ang naiiba talagang gumagana ang utos? Ang naiiba Inihambing ng utos ang dalawang mga file at naglalabas ng isang listahan ng mga pagkakaiba sa pagitan ng parehong mga file. Mas tiyak, nagbubunga ito ng isang listahan ng mga pagbabago na kinakailangang gawin sa unang file upang tumugma sa pangalawang file. Ang naiiba Ang utos ay ginagamit din ng mga programmer upang makuha ang pagkakaiba sa pagitan ng dalawang mga file ng source code upang makabuo ng mga patch.







Bago sumisid sa mga halimbawa, tandaan na ang pagkakasunud-sunod ng mga file ay napakahalaga. Dahil ang naiiba Ang utos ay nagbibigay ng output batay sa pagkakasunud-sunod ng mga file.



Paano Gumamit ng diff Command sa Linux upang Magkumpara ng Mga File:

Ang syntax ng naiiba ang utos ay nabanggit sa ibaba:



$naiiba [mga pagpipilian] [file1] [file2]

Una, lumikha ng dalawang mga file. Lumilikha ako ng mga file ng teksto sa pangalan ng test_file_1.txt at test_file_2.txt . Naglalaman ang mga file na ito ng nilalaman na may kaunting pagkakaiba:





Ngayon gamitin ang sumusunod na utos upang makuha ang pagkakaiba:



$naiibatest_file_1.txt test_file_2.txt

Ipinapakita ng karaniwang output ang mga linya na tumutugma ayon sa pagkakasunud-sunod ng mga file na nabanggit sa utos. Kaya, i-decode natin ang output:

Ang paghahambing ng mga file ay may label, at ang bawat label ay may isang numero sa magkabilang panig. Ang format ay ang mga sumusunod:

[Bilang ng linya ng file 1] [Label (a, c, d)] [Bilang ng linya ng file 2]

Mayroong tatlong mga label:

  • sa - Idagdag: Magdagdag ng nilalaman sa unang file upang mag-synch sa pangalawang file.
  • c - Pagbabago: Isinasaad na isang pagbabago na kinakailangan sa nilalaman ng unang file upang tumugma sa pangalawang file.
  • d - Tanggalin: Alisin ang nilalaman mula sa unang file upang tumugma sa pangalawa.

2d1 Ipinapahiwatig na tanggalin ang linya numero 2 ng unang file upang tumugma sa pangalawang file mula sa linya numero 1.

Katulad din 4c3 nangangahulugang paggawa ng isang pagbabago sa ikaapat na linya ng unang file upang tumugma sa linya na numero 3 ng pangalawang file dahil ang magkabilang linya ay bahagyang magkakaiba.

May isa pang pamamaraan upang matingnan ang pagkakaiba, gamitin ang naiiba utos kasama ang -at pagpipilian:

$naiiba -at -SA 60test_file_1.txt test_file_2.txt

Sa output sa itaas, ang nilalaman ng test_file_1.txt ay ipinapakita sa kaliwang bahagi, habang ang nilalaman ng text_file_2.txt ay ipinakita sa kanang bahagi. Ang pagkakaiba ay ipinahiwatig ng mga simbolo:

  • | - Ang linya ay naiiba sa pangalawang file
  • > - Ang linya ay karagdagang sa pangalawang file
  • <— Line has been deleted from the second file

Isinasaad ng -W ang lapad sa pagitan ng nilalaman ng dalawang mga file. Upang magkahiwalay at tingnan ang pagkakaiba, gamitin ang sumusunod:

$naiiba -at -SA 60 --suppress-karaniwang-linyatest_file_1.txt test_file_2.txt

Paano Kumuha ng Output sa Isang Linya Gamit ang diff Command:

Kung ang pamamaraan na may label ay mahirap para sa iyo na mag-decode, pagkatapos ay mayroong isang mas simpleng diskarte. Gamit ang -q pagpipilian kasama ang naiiba binibigyan ka ng utos ng output sa isang linya. Gayunpaman, nang walang anumang karagdagang impormasyon, bagaman:

$naiiba -qtest_file_1.txt test_file_2.txt

Kung magkakaiba ang mga file, ang utos sa itaas ay magbibigay ng isang output. Kung magkapareho ang mga file, walang output. Upang maipakita ito, lumilikha ako ng isang kopya ng test_file_1.txt gamit ang:

$cptest_file_1.txt test_file_3.txt

Ang isang bagong file ay malilikha ng pangalan ng test_file_3.txt naglalaman ng parehong nilalaman na test_file_1.txt ay mayroon Ngayon, gamitin ang:

$naiiba -qtest_file_1.txt test_file_2.txt

Dahil ang parehong mga file ay may katulad na nilalaman, samakatuwid, walang output.

Paano Suriin ang Pagkakaiba ng Mga File sa Context Mode Gamit ang diff Command:

Upang makuha ang paghahambing sa mode ng konteksto, ang -c gagamitin ang pagpipilian sa naiiba utos:

$naiiba -ctest_file_1.txt test_file_2.txt

I-dissect natin ang output.

Upang mapanatili ang pagkakaiba, ang unang file ay ipinahiwatig ng *** kasama ang petsa at oras ng paglikha, habang ang pangalawang file ay ipinahiwatig ng -.

Ang susunod na linya ay nangangahulugang isang hanay ng mga linya na isinasaalang-alang sa panahon ng paghahambing. Para sa unang file, ito ay *** 1.6 **** at para sa pangalawang file, ito ay —1.5—- :

Ang pagkakaiba ay ipinahiwatig ng mga simbolo:

  • +: Wala ang linya sa unang file. Ipasok ito sa unang file o alisin ito mula sa pangalawang file upang tumugma sa parehong mga file.
  • -: Ang linya ay umiiral sa unang file ngunit hindi sa pangalawang file. Subukang ipasok ito sa pangalawang file o alisin ito mula sa una upang tumugma sa parehong mga file.
  • ! : Ang linya ay nangangailangan ng pagbabago upang tumugma.

Paano Suriin ang Pagkakaiba ng Mga File sa Pinag-isang Mode Gamit ang diff Command:

Ang pinag-isang mode ay halos kapareho ng mode ng konteksto ngunit walang kalabisan na impormasyon. Ang watawat na ginagamit namin ay -u :

$naiiba -utest_file_1.txt test_file_2.txt

Sa output, ang unang file ay ipinahiwatig ng - at ang pangalawa ng +++. Ipinapakita ng pangalawang linya ang bilang ng mga linya na isinasaalang-alang para sa paghahambing sa parehong mga file, pagkatapos ang nilalaman na tatanggalin, idagdag, o mabago kasama ng mga simbolo kasama nila. Walang simbolo na may mga katulad na linya sa parehong mga file.

Paano Balewalain ang Sensitivity ng Kaso Habang Ginagamit ang diff Command:

Kung nais mong ihambing ang mga file habang hindi pinapansin ang pagkasensitibo ng kaso, pagkatapos ay gamitin ang -ako bandila:

$naiiba -akotest_file_1.txt test_file_2.txt

Para sa pagpapakita, nagawa ko ang D ng Deepin sa unang maliit na file:

Tulad ng nakikita sa unang utos, ang pagkakaiba ay ipinahiwatig; habang ginagamit -ako tinanggal ang pagkakaiba na iyon.

Ang ilang iba pang mga kapaki-pakinabang na pagpipilian ng naiiba ang utos ay nakalista sa ibaba:

Pagpipilian Paglalarawan
-sa Tinatrato ng pagpipiliang ito ang lahat ng mga file bilang mga file ng teksto
-B Hindi nito pinapansin ang pagbabago kung saan blangko ang lahat ng mga linya
-AND Hindi pinapansin ng pagpipiliang ito ang pagpapalawak ng tab
-Ako Hindi nito pinapansin ang mga pagbabago kung saan tumutugma ang lahat ng mga linya
-s Nagbibigay ng output kapag magkatulad ang dalawang mga file
-sa Hindi nito pinapansin ang lahat ng puting puwang
-With Hindi nito pinapansin ang puting puwang sa linya ng pagtatapos

Paano Gumamit ng Vim Editor upang Paghambingin ang Dalawang Mga File:

Ang isa pang pamamaraan upang ihambing ang dalawang mga file ay ang paggamit ng vimdiff utos Para doon, kailangan mong magkaroon ng vim na naka-install:

$sudoapti-install dumating ako

Ngayon, upang ihambing ang ginagamit ng dalawang mga file:

$vimdiff test_file_1.txt test_file_2.txt

Ang parehong mga file ay bubuksan magkatabi. Ang bahagi na hindi tumutugma ay mai-highlight:

Paano Paghambingin ang Dalawang Mga File Gamit ang colordiff:

Ang isa pang diskarte ay isang uri ng pagpapalawak ng naiiba utos Maaari mong gawing mas makilala ang paghahambing sa pamamagitan ng pagdaragdag ng mga kulay dito. Upang mai-install ang paggamit:

$sudoapti-installcolordiff

Upang ihambing ang mga file, gamitin ang:

$colordiff test_file_1.txt test_file_2.txt

Maaari mong palitan naiiba kasama si colordiff upang makuha ang karaniwang output ng naiiba utos na may kulay na format.

Konklusyon:

Upang ihambing ang mga file sa Linux at kahit sa macOS, ang ginagamit na utility ay tinatawag na diff. Kinukumpara ng diff utility ang dalawang mga file at nagbibigay ng impormasyon tungkol sa mga pagkakaiba sa pagitan ng dalawang mga file. Pangunahing ginagamit ng mga developer ang diff command upang lumikha ng mga file ng patch.

Sa gabay na ito, tinalakay naming mabuti ang naiiba utos at kung paano ito gamitin upang ihambing ang dalawang mga file na may iba't ibang mga pagpipilian. Natutunan din namin kung paano gamitin colordiff upang gawing mas makilala ang mga pagkakaiba ng file. Ngunit kung nakita mong mahirap gamitin ang utility na nakabatay sa terminal, mayroong ilang mga tool na batay sa GUI din, tulad ng Kompare, DiffMerge, Meld - Diff Tool at Diffuse - GUI Giff Tool.