Cara Membandingkan dan Menggabungkan Fail Menggunakan Perintah diff3 pada Linux
Perintah diff3
dalam Linux ialah alat berguna yang membandingkan tiga fail dan menunjukkan perbezaannya, yang berguna terutamanya untuk pengaturcara dan pentadbir sistem yang bekerja dengan berbilang versi fail yang sama dan perlu menggabungkannya, atau mengenal pasti perubahan antara versi yang berbeza.
Dalam artikel ini, kita akan meneliti asas penggunaan perintah diff3
, pilihan lazimnya dan beberapa contoh untuk memahami cara ia berfungsi dalam Linux.
Apakah Perintah diff3?
diff3
ialah alat yang membandingkan tiga fail baris demi baris, mengenal pasti perbezaan dan memaparkannya dalam format yang mudah difahami.
Ia boleh digunakan untuk:
- Cari perbezaan antara tiga fail.
- Menggabungkan perubahan secara automatik daripada fail yang berbeza.
- Mengendalikan konflik yang berlaku apabila menggabungkan versi fail.
Perintah diff3
adalah serupa dengan perintah diff
atau perintah sdiff tetapi berfungsi dengan tiga fail dan bukannya dua, yang amat berguna apabila anda mempunyai berbilang penyumbang yang bekerja pada fail yang sama, dan anda perlu menggabungkan perubahan mereka ke dalam satu versi.
Sintaks Asas Perintah diff3
Sintaks asas perintah diff3
ialah:
diff3 [options] file1 file2 file3
Penjelasan arahan di atas.
file1
: Versi pertama fail.file2
: Versi kedua fail.file3
: Versi ketiga fail.
Pilihan yang Biasa Digunakan
Berikut ialah beberapa pilihan yang biasa digunakan bagi Perintah diff3
:
-e
: Buat skrip ed yang boleh digunakan untuk menggunakan perubahan pada fail.-m
: Gabungkan fail secara automatik.-A
: Sertakan semua perubahan daripada semua fail.-E
: Cuba untuk menggabungkan fail walaupun konflik ditemui.-3
: Tunjukkan hanya perubahan yang berbeza antara ketiga-tiga fail.
Mencari Perbezaan Antara Fail dalam Linux
Katakan anda mempunyai tiga fail: file1.txt
, file2.txt
dan file3.txt
. Setiap fail mengandungi versi kandungan yang sama sedikit berbeza, dan anda ingin membandingkannya untuk melihat di mana perbezaannya.
Untuk membandingkan ketiga-tiga fail ini, anda boleh menggunakan arahan berikut:
diff3 file1.txt file2.txt file3.txt
Inilah maksud output ini:
1:2c
: Ini menunjukkan bahawa dalamfile1.txt
, perubahan berlaku pada baris 2 dan kandungan baris 2 ialah This is line 2..2:2c
: Ini menunjukkan bahawa dalamfile2.txt
, perubahan juga berlaku pada baris 2, tetapi kandungan baris itu telah diubah suai kepada Ini diubah suai baris 2. .3:2,3c
: Ini menunjukkan bahawa dalamfile3.txt
, terdapat perubahan dalam baris 2 dan 3. Baris 2 kekal sama (Ini adalah baris 2.), tetapi baris 3 ialah baris tambahan yang menyatakan: Ini adalah baris tambahan..
Menggabungkan Fail dengan diff3 dalam Linux
Jika anda ingin menggabungkan tiga fail dan mencipta fail baharu dengan semua perubahan, anda boleh menggunakan pilihan -m
:
diff3 -m file1.txt file2.txt file3.txt
Ini akan mengeluarkan kandungan yang digabungkan dengan penanda konflik yang menunjukkan di mana terdapat perubahan yang bercanggah.
Inilah maksud output ini:
<<<<<<< file1.txt
: Ini menandakan permulaan konflik dan menunjukkan versi daripadafile1.txt
.||||||| file2.txt: Baris ini menunjukkan kandungan daripada file2.txt
(fail tengah dalam perbandingan).=======
: Ini memisahkan baris yang bercanggah.>>>>>>> file3.txt
: Ini menandakan versi daripadafile3.txt
dan berakhirnya blok konflik.
Anda boleh mengedit ini secara manual untuk mengekalkan perubahan yang anda inginkan.
Menggunakan Perubahan daripada Berbilang Fail kepada Satu dengan diff3
Anda juga boleh menggunakan diff3
untuk mencipta skrip ed
yang menggunakan perubahan daripada file2.txt
dan file3.txt
kepada file1.txt
. Ini boleh dilakukan menggunakan pilihan -e
:
diff3 -e file1.txt file2.txt file3.txt > scriptfile
Perintah ini mencipta fail bernama scriptfile
yang mengandungi skrip ed yang dijana, yang anda boleh gunakan perintah ed
untuk menggunakan skrip daripada scriptfile ke file1.txt
.
ed file1.txt < scriptfile
Ini akan mengubah suai file1.txt
mengikut perubahan yang dinyatakan dalam fail skrip, anda boleh mengesahkan dengan arahan kucing berikut untuk melihat sama ada perubahan telah digunakan:
cat file1.txt
Ini berguna jika anda ingin mengautomasikan penggabungan fail menggunakan skrip.
Menyelesaikan Konflik dalam diff3 Gabungan
Apabila menggunakan diff3
untuk penggabungan, konflik mungkin timbul apabila terdapat perbezaan antara ketiga-tiga fail di lokasi yang sama. Konflik ini ditandakan dalam output, dan anda perlu menyelesaikannya secara manual.
- Untuk menyelesaikan konflik, buka fail yang mengandungi penanda konflik.
- Edit fail untuk mengalih keluar baris yang tidak diingini dan simpan perubahan yang anda inginkan.
- Selepas menyelesaikan konflik, simpan fail.
Kesimpulan
Perintah diff3
ialah alat yang berkuasa untuk membandingkan dan menggabungkan tiga fail dalam Linux, yang amat berguna untuk mengendalikan berbilang versi fail yang sama dan menyelesaikan konflik apabila menggabungkan perubahan.
Dengan memahami penggunaan dan pilihan asasnya, anda boleh mengurus versi fail dengan berkesan dan bekerjasama dengan orang lain dalam projek.