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 dalam file1.txt, perubahan berlaku pada baris 2 dan kandungan baris 2 ialah This is line 2..
  • 2:2c: Ini menunjukkan bahawa dalam file2.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 dalam file3.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 daripada file1.txt.
  • ||||||| file2.txt: Baris ini menunjukkan kandungan daripada file2.txt (fail tengah dalam perbandingan).
  • =======: Ini memisahkan baris yang bercanggah.
  • >>>>>>> file3.txt: Ini menandakan versi daripada file3.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.