Linux pasaulē failu pārvaldība un salīdzināšana ir parasts uzdevums gan sistēmu administratoriem, gan izstrādātājiem. Spēja salīdzināt failus pēc rindas ir ļoti svarīga, lai identificētu atšķirības, atkļūdotu kodu un nodrošinātu datu integritāti. Viens spēcīgs instruments, kas atvieglo šo procesu, irdiff>komandu. Šajā rakstā mēs izpētīsim, kā izmantotdiff>komandu, lai salīdzinātu failus pēc rindas operētājsistēmā Linux.
Satura rādītājs
- Komandas diff pamata sintakse
- Opcijas, kas pieejamas diff Command
- Praktiskā ieviešana Kā salīdzināt failus rindu pa rindiņai operētājsistēmā Linux? :
- Divu failu salīdzināšana
- Rindas dzēšana failos, izmantojot komandu diff
- Atšķirību skatīšana konteksta režīmā
- Atšķirību skatīšana vienotajā režīmā
- Lietojumjutīga failu salīdzināšana
- Tiek rādīta atšķirības versija
Izpratne par diff komandu
diff apzīmē atšķirība .Thediff>komanda ir daudzpusīga utilīta, kas ir iepriekš instalēta lielākajā daļā Linux izplatījumu. Tās galvenais mērķis ir salīdzināt divu failu saturu un parādīt atšķirības starp tiem. Komanda nodrošina visaptverošu veidu, kā izcelt izmaiņas, papildinājumus un svītrojumus skaidrā un lasāmā formātā.
Šo komandu izmanto, lai parādītu atšķirības failos, salīdzinot failus pēc rindas. Atšķirībā no saviem kolēģiem, cmp un comm , tas mums norāda, kuras rindas vienā failā ir jāmaina, lai abi faili būtu identiski.
Svarīgi atcerēties, ka atšķir izmanto noteiktus īpašie simboli un instrukcijas kas nepieciešami, lai divi faili būtu identiski. Tajā ir sniegti norādījumi par to, kā mainīt pirmo failu, lai tas atbilstu otrajam failam.
Komandas diff pamata sintakse
Pamata sintaksediff>komanda ir šāda:
diff [OPTION]... FILE1 FILE2>
Lūk, ` FILE1`> un ` FILE2`> ir divi faili, kurus vēlaties salīdzināt.
` OPTION`> karodziņš ļauj pielāgot ` diff`> komandu.
Opcijas, kas pieejamas diff Command
| Opcija | Apraksts |
|---|---|
|
| Izvades atšķirības konteksta režīmā |
|
| Izvades atšķirības vienotajā režīmā (precīzāk) kā pārvērst virkni int java |
|
| Veiciet reģistrjutīgo salīdzinājumu |
| – ignorēt visu vietu | Salīdzinot līnijas, ignorējiet atstarpes |
| – īss | Izvadīt tikai to, vai faili atšķiras, bez detaļām |
| - rekursīvs | Rekursīvi salīdziniet direktorijus |
|
| Parādiet izvadi blakus formātā |
Praktiskā ieviešana Kā salīdzināt failus rindu pa rindiņai operētājsistēmā Linux? :
Divu failu salīdzināšana
Salīdziniet failus pēc rindas operētājsistēmā Linux.
mašīnraksts katram
Pieņemsim, ka mums ir divi faili ar nosaukumiem a.txt un b.txt kurā ir 5 Indijas štati.
cat a.txt cat b.txt>

failu satura parādīšana, izmantojot cat komandu
Tagad, izmantojot diff komandu bez opcijas, mēs iegūstam šādu izvadi:
diff a.txt b.txt>

failu salīdzināšana pa rindiņai Linux
Apskatīsim, ko nozīmē šī izvade. Pirmā rinda no atšķir izvadē būs:
- rindu numuri, kas atbilst pirmajam failam,
- Īpašs simbols un
- Rindas numuri, kas atbilst otrajam failam.
Tāpat kā mūsu gadījumā, 0a1 kas nozīmē pēc rindas 0 (pašā faila sākumā), jums ir jāpievieno Tamil Nadu lai atbilstu otrajam faila rindas numuram 1. Pēc tam tas mums norāda, kādas ir šīs rindas katrā failā, pirms kuras ir simbols:
- Rindas, pirms kurām ir a < ir rindas no pirmā faila.
- Rindas, kuru priekšā ir > ir rindas no otrā faila.
- Nākamā rinda satur 2,3c3 kas nozīmē, ka no 2. rindiņas uz 3. rindiņu pirmajā failā ir jāmaina, lai tā atbilstu otrā faila 3. rindai. Pēc tam tas mums norāda šīs līnijas ar iepriekš minētajiem simboliem.
- Trīs svītras (—) vienkārši atdaliet 1. faila un 2. faila rindas.
Lai abi faili būtu identiski, vispirms pievienojiet Tamil Nadu pirmajā failā pašā sākumā, lai atbilstu otrā faila 1. rindiņai, pēc tam mainiet pirmā faila 2. un 3. rindiņu, t.i. Utarpradeša un Kolkata ar otrā faila 3. rindu, t.i. Andra Pradeša . Pēc tam mainiet pirmā faila 5. rindiņu, t.i. Džammu un Kašmira ar otrā faila 5. rindu, t.i. Utarpradeša .
Rindas dzēšana failos, izmantojot komandu diff
Apsveriet scenāriju, kurdiff>norāda uz nepieciešamību dzēst rindu. Ņemot vērā divus failus,a.txt>unb.txt>:

failu satura parādīšana, izmantojot cat komandu
diff a.txt b.txt>

Rindas dzēšana failā
Šeit virs izejas 3d2 nozīmē dzēst pirmā faila 3. rindiņu, t.i. Telangana lai abi faili sinhronizēt 2. rindā.
Atšķirību skatīšana konteksta režīmā
Lai skatītu atšķirības konteksta režīmā, izmantojiet -c opciju. Mēģināsim to saprast ar piemēru, mums ir divi faili fails1.txt un fails2.txt :

failu satura parādīšana, izmantojot cat komandu
struct masīva c programmēšana
diff -c file1.txt file2.txt>

Atšķirību skatīšana konteksta režīmā
Iepriekš minētajā izvadā:
- Pirmais fails ir apzīmēts ar `
***`>, un otrais fails ir apzīmēts ar `---`>. - Līnija ar `
***************`>kalpo kā atdalītājs. - Pirmās divas rindiņas sniedz informāciju par 1. un 2. failu, parādot faila nosaukumu, modifikācijas datumu un modifikācijas laiku.
- Pēc tam trīs zvaigznītes `
***`>seko rindas diapazons no pirmā faila (no 1. līdz 4. rindai). Četras zvaigznītes `****`>nāc tālāk. Pēc tam tiek parādīts pirmā faila saturs ar īpašiem indikatoriem:- Ja rinda ir nemainīga, tai priekšā ir divas atstarpes.
- Ja rindiņa ir jāmaina, tai priekšā ir simbols un atstarpe. Simboli norāda:
-
`+`>: rinda otrajā failā, kas jāpievieno pirmajam failam identiskiem rezultātiem. -
`-`>: rindiņa pirmajā failā, kas jāizdzēš identiskiem rezultātiem.
-
- Trīs domuzīmes `
---`>seko rindas diapazons no otrā faila (rinda no 1 līdz 4), atdalīta ar komatu. Četras domuzīmes `----`>sekojiet, un tiek parādīts otrā faila saturs.
Atšķirību skatīšana vienotajā režīmā
Lai skatītu atšķirības vienotajā režīmā, izmantojiet -in opciju. Tas ir līdzīgs konteksta režīmam, bet tas neparāda nekādu lieku informāciju vai tas parāda informāciju kodolīgā veidā.

failu satura parādīšana, izmantojot cat komandu
diff -u file1.txt file2.txt>

Skatīšanās atšķirības vienotajā režīmā
Iepriekš minētajā izvadā:
- Pirmais fails ir apzīmēts ar `
---`>, un otrais fails ir apzīmēts ar `+++`>. - Pirmās divas rindiņas sniedz informāciju par 1. un 2. failu, tostarp modifikācijas datumu un laiku.
- Pēc tam, `
@@ -1>`,`>4 +1`>,`>4 @@`>apzīmē abu failu līniju diapazonu. Šajā gadījumā tas apzīmē 1. līdz 4. rindiņu abos failos. - Nākamās rindas attēlo failu saturu ar īpašiem indikatoriem:
- Nemainītas līnijas tiek parādītas bez prefiksa.
- Rindas pirmajā failā, kas jāizdzēš, ir ar prefiksu
->. - Otrā pievienojamā faila rindiņas ir apliktas ar prefiksu
+>.
Šajā piemērā izvade norāda, ka, lai padarītu abus failus identiskus, rindas, kas satur mv un comm, ir jāizdzēš no pirmā faila (file1.txt>), un tai ir jāpievieno rindas, kas satur diff un comm.
Lietojumjutīga failu salīdzināšana
Pēc noklusējuma ` diff`> ir reģistrjutīgs. Lai veiktu reģistrjutīgu salīdzinājumu, izmantojiet ` -i`> variants:

failu satura parādīšana, izmantojot cat komandu
Thediff>komanda tiek izmantota, lai salīdzinātu šos failus ar-i>opciju, kas padara salīdzinājumu reģistrjutīgu.
diff -i file1.txt file2.txt>

reģistrjutīgs Salīdzināšana
2d1>: Tas norāda uz izmaiņām pirmā faila 2. rindā (file1.txt>). Thed>apzīmē delete, un tajā ir teikts, ka jāizdzēš pirmā faila 2. rindiņa.>: šī rinda apzīmē dzēšamās rindas saturu. Šajā gadījumā tas ir mv.
3a3>: Tas norāda uz papildinājumu pirmā faila 3. rindā (file1.txt>). Thea>apzīmē pievienošanu, un tajā ir teikts, ka jāpievieno rindiņa 3. pozīcijā.>atšķir.>: šī rinda apzīmē pievienojamo saturu. Šajā gadījumā tas ir atšķirīgs.
Rezumējot, izvade mums norāda, ka, lai abus failus padarītu identiskus (ignorējot reģistru), mums ir jāizdzēš rinda, kurā ir mv no pirmā faila (file1.txt>) un pievienojiet līnijas atšķirību tajā pašā vietā. Thediff>komandu, ar-i>opciju, ļauj veikt salīdzinājumu, kas nav reģistrjutīgs, liekot analīzes laikā mv un MV uzskatīt par vienu un to pašu.
Tiek rādītsdiff>Versija
Lai pārbaudītu ` versiju diff`> instalēta jūsu sistēmā, izmantojiet ` --version`> variants:
diff --version>

Tiek rādīta diff komandas versija
Šī komanda sniedz informāciju par ` versiju, licencēšanu un autoriem diff`> lietderība.
Bieži uzdotie jautājumi par diff komandu — FAQ
Kā es varu izmantotdiff>komandu, lai salīdzinātu divus failus pēc rindas operētājsistēmā Linux?
Lai salīdzinātu divus failus pēc rindas, izmantojot
diff>komandu, vienkārši izmantojiet šādu sintaksi:diff file1.txt file2.txt>Šī komanda parādīs atšķirības starp diviem failiem, izceļot papildinājumus, dzēšanu un modifikācijas.
Vai es varu ignorēt atstarpes atšķirības, salīdzinot failus ardiff>komanda?
Jā,
diff>komanda nodrošina-w>vai--ignore-all-space>iespēja ignorēt atstarpes atšķirības. Piemēram:diff -w file1.txt file2.txt>Tas ir īpaši noderīgi, salīdzinot koda failus, kur izmaiņas atkāpēs vai atstarpēs nav nozīmīgas.
Kā es varu izveidot ielāpu failu, izmantojotdiff>komanda?
Lai izveidotu ielāpu failu, kas atspoguļo atšķirības starp diviem failiem, izmantojiet
-u>opciju un novirziet izvadi uz failu:diff -u file1.txt file2.txt>mypatch.patch>Ģenerēto ielāpu failu var lietot vēlāk, lai sinhronizētu citu failu ar izmaiņām.
Kāds ir vienotais formātsdiff>izvade, un kā tā atšķiras no konteksta formāta?
Vienotais formāts (`
-u`>opcija) `diff`>izvade nodrošina kodolīgāku un lasāmāku atšķirību attēlojumu salīdzinājumā ar konteksta formātu (`-c`>variants). Tas parāda izmaiņas kompaktākā formā, atvieglojot failu modifikāciju izpratni.
Kā rekursīvi salīdzināt divus direktorijus operētājsistēmā Linux, izmantojotdiff>komanda?
Lai rekursīvi salīdzinātu divus direktorijus un to saturu, izmantojiet `
-r`>vai `--recursive`>opcija ardiff>komanda:diff -r directory1/ directory2/>Šī komanda salīdzina visus failus norādītajos direktorijos un sniedz detalizētu informāciju par atšķirībām.
labākā automašīna pasaulē
Secinājums
Linux pasaulē failu salīdzināšana ir parasts sistēmas administratoru un izstrādātāju uzdevums. ` diff> komanda ir ērts rīks, kas palīdz šajā procesā. Šajā rakstā ir aprakstīts, kā lietot ` diff`> lai salīdzinātu failus pēc rindas operētājsistēmā Linux. Tas aptver pamata sintaksi, svarīgas opcijas, piemēram, konteksta režīmu un vienoto režīmu, kā arī praktiskas lietojumprogrammas, piemēram, ielāpu failu izveidi un direktoriju rekursīvu salīdzināšanu. Neatkarīgi no tā, vai veicat koda atkļūdošanu vai faila integritātes nodrošināšanu, saprotat un apgūstat ` diff`> komanda ir būtiska efektīvai failu pārvaldībai operētājsistēmā Linux.