Linux Diff komanda

Linux Diff Komanda



Atšķirība, visticamāk, ir jēdziens vai sajūta, kas var atšķirt vienu lietu no citas. Komanda “diff” attiecas uz variāciju. Analizējot dokumentus pēc rindas, šis rīks parāda atšķirības starp failiem. Tas informē mūs, kuras sadaļas vienā dokumentā ir jāmaina, lai dokumenti būtu līdzīgi, atšķirībā no tā pavadošajiem elementiem cmp un comm. Būtisks aspekts, kas jāpatur prātā, ir tas, ka, lai dokumenti būtu līdzīgi, diff izmanto īpašus īpašus simbolus un komandas. Jums tiek sniegti norādījumi par to, kā mainīt pirmo dokumentu, lai tas atbilstu citam dokumentam. Šajā rokasgrāmatā mēs apspriedīsim komandas “diff” izmantošanu Ubuntu 20.04, izmantojot Linux termināli.

Mēs esam izveidojuši divus teksta failus mūsu sistēmas darba mapē.









Ir pienācis laiks izmantot “diff” instrukciju vaicājuma apgabalā, lai parādītu atšķirību starp abu failu saturu. Mēs izmēģinām šo “diff” instrukciju ar abiem failu nosaukumiem secībā, t.i., vispirms viens.txt un pēc tam fails two.txt. Komandas “diff” izpilde parāda atšķirību starp abiem failiem kā:



  • Rindu numuri atbilstoši pirmajam teksta failam.
  • Īpašas rakstzīmes/simboli, lai informētu mūs par atšķirību, piemēram, mainīt, pievienot, dzēst.
  • Rindu numuri atbilstoši otrajam teksta failam.

Mūsu pirmajā ilustrācijā mēs detalizēti aprakstām simbolu “a” starp komandas “diff” izvades rindu numuriem; “a” tiek izmantots kā “Pievienot” saīsinājums. Instrukcijas “cat” izmantošana ar abiem failu nosaukumiem vaicājuma apgabalā atsevišķi parāda saturu katrā teksta failā, t.i., one.txt un two.txt. Pirmajā failā kopā ir 4 rindiņas, savukārt otrajā failā ir 5 rindas. 1. rinda ir papildus.





Pēc tam termināļa vaicājuma apgabalā izmēģinām instrukciju “diff”, kam seko failu nosaukumi – one.txt un two.txt. Šīs instrukcijas izpilde parāda “0a1” kā izvadi kopā ar 1. rindiņu no otrā faila, kas ir papildu rindiņa otrajā failā. Skaitliskā vērtība “0” tiek izmantota pirmā faila 0. rindiņai vai pirms 1. rindas, t.i., one.txt. Simbols “a” nozīmē “pievienot”. Visbeidzot, skaitliskā vērtība “1” nozīmē otrā faila pirmo rindu. Sajaukšanas izvade “0d1” nozīmē, ka otrā faila “two.txt” 1. rindiņa jāpievieno pirmā faila “one.txt” augšdaļā, pirms pirmās rindas divas padara abus failus vienādus.



Tagad mēs atjauninām abus failus, lai redzētu citu ilustrāciju. Pirmajā failā “one.txt” ir 4 rindiņas, bet otrajā failā “two.txt” ir tikai 3 rindas. Vienīgā atšķirība šiem failiem ir papildu rindiņas izmantošana pirmajā failā, t.i., rinda 1 = “pirmdiena”, kuras nav otrajā failā. Pēc atjaunināto teksta failu “diff” instrukcijas izmēģināšanas mēs saņemam “1d0” kā izvadi. Un tiek parādīta pirmā rindiņa no pirmā faila. “1d0” 1 nozīmē, ka faila “one.txt” pirmā rindiņa ir jāizdzēš (atbilstoši simbolam “d”), un 0 nozīmē, ka otrais fails nav atjaunināts. Beigās tiek parādīta pirmā faila “one.txt” 1. rindiņa, lai nodrošinātu skaidru atšķirību.

Tāpat komanda “diff” var parādīt atšķirību starp divu failu rindām. Tāpēc mēs vēlreiz atjauninām abus teksta failus. Šoreiz pirmajā failā ir 5 rindas, bet otrajā failā ir tikai 4. Vienīgā atšķirība ir papildu rindas izmantošana failā one.txt, kas ir 3. rindiņa. Komanda diff, kas tiek izmantota abos termināļa failos, parāda izvadiet “3d2” kopā ar 3. rindiņu no pirmā faila “one.txt”. Šī izvade parāda, ka pirmā faila 'one.txt' 3. rindiņa ir jāizdzēš, lai mēs varētu sinhronizēt abus failus otrā faila 2. rindā. Tiek parādīta atšķirīgā rinda “3”, lai mēs varētu iegūt skaidru priekšstatu par atšķirību.

Skaidri un dziļāk aplūkosim iznākumu. 1,5c1,2 izvade no nākamā attēla parāda, ka pirmā faila (one.txt) 1. līdz 5. rindiņas ir jāmaina ar otrā faila (two.txt) 1. līdz 2. rindiņām. Tas nozīmē, ka pirmās 5 rindiņas (no 1 līdz 5) failā one.txt ir jāmaina un jāaizstāj ar otrā faila “two.txt” pirmajām divām rindām (1, 2), lai tas būtu vienāds. Beigās tiek parādītas visas 5 rindas no pirmā faila, kuras jāaizstāj ar parādītajām 2 otrā faila rindām. Tādā veidā simbols “c” norāda atšķirību starp diviem failiem – neviena rinda nav vienāda abos failos.

Komanda “diff” ļauj iegūt tās izvadi konteksta formā. Iedomājieties, ka šajos failos ir tie paši divi faili ar šādiem datiem. Izvades konteksts ir parādīt galveno atšķirību starp kopējiem vienkāršajiem failiem, kas parādīti nākamajā attēlā. Tagad mums ir 5 rindas pirmajā failā “one.txt” un 4 rindas otrajā failā “two.txt”.

Lai iegūtu instrukcijas “diff” kontekstu balstītu izvadi, komandā “diff” ir jāizmanto opcija “-c”. Izmantojot iepriekš atjauninātos failus šajā “diff” komandā, mēs iegūstam šādu izvadi - datums, diena, kā arī papildu informācija par teksta izveidi failos. Tiek parādītas 5 rindiņas no one.txt failiem. Jo īpaši tā trešā rindiņa ir izcelta, izmantojot rakstzīmi “-”, lai to vienkārši pievienotu citam failam.

Secinājums

Mēs mēģinājām īsi izskaidrot visu par “diff” instrukciju. Šim nolūkam mēs katru reizi atjauninājām savus teksta failus un saņēmām atjauninātu izvadi datu pievienošanai, noņemšanai un mainīšanai failā. Ievadā tika izskaidrots komandas “diff” izmantošanas mērķis Linux un kā to izmantot operētājsistēmā Linux.