Ինչպես համեմատել և միաձուլել ֆայլերը՝ օգտագործելով diff3 հրամանը Linux-ում
diff3
հրամանը Linux-ում օգտակար գործիք է, որը համեմատում է երեք ֆայլերը և ցույց է տալիս դրանց տարբերությունները, որը հիմնականում օգտակար է ծրագրավորողների և համակարգի ադմինիստրատորների համար, ովքեր աշխատում են նույն ֆայլի բազմաթիվ տարբերակների հետ և պետք է միաձուլեն դրանք, կամ բացահայտել փոփոխությունները տարբեր տարբերակների միջև:
Այս հոդվածում մենք կանցնենք diff3
հրամանի օգտագործման հիմունքներին, դրա ընդհանուր տարբերակներին և մի քանի օրինակներին՝ հասկանալու համար, թե ինչպես է այն աշխատում Linux-ում:
Ի՞նչ է diff3 հրամանը:
diff3
-ը գործիք է, որը համեմատում է երեք ֆայլ տող առ տող, բացահայտում տարբերությունները և ցուցադրում դրանք հեշտ հասկանալի ձևաչափով:
Այն կարող է օգտագործվել՝
- Գտեք տարբերությունները երեք ֆայլերի միջև:
- Ավտոմատ կերպով միաձուլել փոփոխությունները տարբեր ֆայլերից:
- Կառավարեք կոնֆլիկտները, որոնք առաջանում են ֆայլերի տարբերակների միաձուլման ժամանակ:
diff3
հրամանը նման է diff
հրամանին կամ sdiff հրամանին, բայց աշխատում է երեք ֆայլի փոխարեն երկուսի հետ, ինչը հատկապես օգտակար է, երբ դուք ունեք մի քանի ներդրողներ, որոնք աշխատում են նույն ֆայլի վրա, և դուք պետք է միաձուլեք դրանց փոփոխությունները մեկ տարբերակի մեջ:
Diff3 հրամանի հիմնական շարահյուսությունը
diff3
հրամանի հիմնական շարահյուսությունը հետևյալն է.
diff3 [options] file1 file2 file3
Վերը նշված հրամանի բացատրությունը.
file1
. ֆայլի առաջին տարբերակը:file2
. ֆայլի երկրորդ տարբերակը:file3
. ֆայլի երրորդ տարբերակը:
Հաճախ օգտագործվող ընտրանքներ
Ստորև բերված են diff3
հրամանի հաճախ օգտագործվող տարբերակները.
-e
. Ստեղծեք խմբագրման սցենար, որը կարող է օգտագործվել ֆայլում փոփոխություններ կիրառելու համար:-m
. ավտոմատ կերպով միաձուլել ֆայլերը:-A
. Ներառեք բոլոր փոփոխությունները բոլոր ֆայլերից:-E
. փորձեք միաձուլել ֆայլերը, նույնիսկ եթե կոնֆլիկտներ հայտնաբերվեն:-3
. Ցուցադրել միայն փոփոխությունները, որոնք տարբերվում են բոլոր երեք ֆայլերի միջև:
Գտնել տարբերություններ ֆայլերի միջև Linux-ում
Ենթադրենք, դուք ունեք երեք ֆայլ՝ file1.txt
, file2.txt
և file3.txt
: Յուրաքանչյուր ֆայլ պարունակում է նույն բովանդակության մի փոքր այլ տարբերակ, և դուք ցանկանում եք համեմատել դրանք՝ տեսնելու, թե որտեղ են տարբերությունները:
Այս երեք ֆայլերը համեմատելու համար կարող եք օգտագործել հետևյալ հրամանը.
diff3 file1.txt file2.txt file3.txt
Ահա թե ինչ է նշանակում այս ելքը.
1:2c
. Սա ցույց է տալիս, որfile1.txt
-ում փոփոխությունը տեղի է ունենում տող 2-ում, իսկ տող 2-ի բովանդակությունը Սա տող 2 է:2:2c
. Սա ցույց է տալիս, որfile2.txt
-ում փոփոխությունը տեղի է ունենում նաև տող 2-ում, սակայն այդ տողի բովանդակությունը փոփոխվել է This is modified line 2-ի: .3:2,3c
. Սա ցույց է տալիս, որfile3.txt
-ում փոփոխություններ կան 2-րդ և 3-րդ տողերում: Տող 2-ը մնում է նույնը (Սա տող 2-ն է): բայց տող 3-ը լրացուցիչ տող է, որը նշում է՝ սա ավելացված տող է։
Ֆայլերի միաձուլում diff3-ի հետ Linux-ում
Եթե ցանկանում եք միաձուլել երեք ֆայլերը և բոլոր փոփոխություններով ստեղծել նոր ֆայլ, կարող եք օգտագործել -m
տարբերակը.
diff3 -m file1.txt file2.txt file3.txt
Սա կարտադրի միավորված բովանդակությունը կոնֆլիկտային նշիչներով, որոնք ցույց են տալիս, թե որտեղ կան հակասական փոփոխություններ:
Ահա թե ինչ է նշանակում այս ելքը.
<<<<<<< file1.txt
. սա նշում է կոնֆլիկտի սկիզբը և ցուցադրում է տարբերակըfile1.txt
-ից:- <կոդ>||||||| file2.txt. այս տողը ցույց է տալիս
file2.txt
-ի բովանդակությունը (միջին ֆայլը համեմատության մեջ): ======
. Սա առանձնացնում է հակասական տողերը:>>>>>>> file3.txt
. սա նշում է տարբերակըfile3.txt
-ից և կոնֆլիկտի բլոկի վերջը:
Դուք կարող եք ձեռքով խմբագրել սա՝ ձեր ուզած փոփոխությունները պահպանելու համար:
Փոփոխությունների կիրառում մի քանի ֆայլից մեկի վրա՝ diff3-ով
Դուք կարող եք նաև օգտագործել diff3
՝ ստեղծելու ed
սկրիպտ, որը կկիրառի փոփոխությունները file2.txt
և file3.txt
-ից դեպի file1.txt
: Դա կարելի է անել՝ օգտագործելով -e
տարբերակը.
diff3 -e file1.txt file2.txt file3.txt > scriptfile
Այս հրամանը ստեղծում է scriptfile
անունով ֆայլ, որը պարունակում է ստեղծված ed script-ը, որը կարող եք օգտագործել ed
հրամանը scriptfile-ից file1.txt-ում կիրառելու համար: կոդը>.
ed file1.txt < scriptfile
Սա կփոփոխի file1.txt
՝ համաձայն scriptfile-ում նշված փոփոխությունների, կարող եք ստուգել հետևյալ cat հրամանի միջոցով՝ տեսնելու, թե արդյոք փոփոխությունները կիրառվել են.
cat file1.txt
Սա օգտակար է, եթե ցանկանում եք ավտոմատացնել ֆայլերի միաձուլումը սկրիպտների միջոցով:
Կոնֆլիկտների լուծում diff3 Merges-ում
Միաձուլման համար diff3
օգտագործելիս կոնֆլիկտներ կարող են առաջանալ, երբ բոլոր երեք ֆայլերի միջև կան տարբերություններ նույն վայրում: Այս կոնֆլիկտները նշված են ելքի մեջ, և դուք պետք է ձեռքով լուծեք դրանք:
- Հակամարտությունները լուծելու համար բացեք ֆայլը, որը պարունակում է կոնֆլիկտային նշաններ:
- Խմբագրեք ֆայլը՝ անցանկալի տողերը հեռացնելու և ձեր ուզած փոփոխությունները պահպանելու համար:
- Հակամարտությունը լուծելուց հետո պահեք ֆայլը:
Եզրակացություն
diff3
հրամանը հզոր գործիք է երեք ֆայլերը Linux-ում համեմատելու և միացնելու համար, որը հատկապես օգտակար է նույն ֆայլի բազմաթիվ տարբերակները մշակելու և փոփոխությունները միաձուլելու ժամանակ կոնֆլիկտները լուծելու համար:
Հասկանալով դրա հիմնական օգտագործումը և ընտրանքները՝ դուք կարող եք արդյունավետ կառավարել ֆայլերի տարբերակները և համագործակցել ուրիշների հետ նախագծերում: