Seperti yang sudah Anda ketahui, perintah diff Linux membandingkan dua file.
Namun utilitas diff3 Linux membandingkan tiga file dan juga mampu menggabungkan perbedaan antara dua file menjadi yang ketiga. Pada artikel ini, kita akan memahami penggunaan perintah diff3 melalui beberapa contoh.
Sintaks dasar diff3 adalah :
08
1. Keluaran Diff3 Dasar
Untuk contoh ini, mari gunakan tiga file ini:parent.txt, your.txt dan mine.txt.
17
Sekarang jika perintah diff3 dijalankan pada ketiga file ini :
25
Kami melihat bahwa output berisi informasi perbandingan dari ketiga file ini. Pada keluaran di atas:
- Baris pertama ‘====’ menandakan bahwa ketiga file tersebut berbeda.
- Selanjutnya, baris '1:1,2c' berarti bahwa untuk file pertama (1:) yang diberikan sebagai argumen ke diff3 (parent.txt dalam kasus kami), baris dalam rentang satu hingga dua (1,2 ) berbeda jika dibandingkan dengan dua file lainnya dan perlu diubah(c) dan kedua baris ini juga ditampilkan pada dua baris berikutnya dari output.
- Demikian pula '2:1,2c' dan '3:1,2c' dapat dipahami.
Harap diperhatikan bahwa selain menggunakan utilitas diff3, memahami juga cara menggunakan diff, colordiff, wdiff, atau vimdiff untuk perbandingan dua file biasa akan membantu.
2. Jika dua dari tiga file serupa
Untuk contoh ini, asumsikan bahwa file mine.txt dan parent.txt sama persis.
39
Dan diff3 dijalankan pada ketiga file ini sekarang :
47
Baris pertama '====3' menandakan bahwa kali ini file nomor 3 yaitu your.txt berbeda dari dua lainnya. Ini juga terlihat di output.
3. 'c' untuk perubahan sedangkan 'a' untuk penambahan
Sampai sekarang, kita telah melihat alfabet 'c' di output. Huruf ini menandakan 'perubahan' yang diperlukan dalam baris/teks. Jika alfabet 'a' muncul, itu menandakan sebuah garis perlu ditambahkan.
Mari kita ambil contoh lain :
55
Sekarang jalankan diff3 pada ketiga file ini:
68
Output di atas menandakan bahwa perubahan file3 (yaitu your.txt) perlu ditambahkan di file1 (mine.txt) dan file2 (parent.txt) untuk membuat ketiga file serupa. Atau, baris kedua di your.txt dapat diubah(c) untuk membuat ketiga file menjadi serupa.
4. Keluarkan perubahan yang tumpang tindih menggunakan opsi -x
Bendera -x dapat digunakan untuk menampilkan perubahan yang menyebabkan tumpang tindih. Urutan nama file yang diberikan sebagai argumen untuk diff3 penting di sini. Misalnya :
70
berarti Anda ingin menggabungkan di mine.txt perubahan yang akan mengubah parent.txt menjadi your.txt
Mari kita ambil contoh :
86
Jalankan diff3 sekarang:
96
Jadi kita lihat bahwa
t output mengatakan bahwa baris ketiga mine.txt harus diubah menjadi 'bye' untuk menggabungkan perubahan yang akan mengubah parent.txt menjadi your.txt
5. Keluarkan perubahan yang tidak digabungkan menggunakan opsi -e
Opsi -e dapat digunakan untuk menampilkan perubahan yang tidak digabungkan dari parent.txt ke your.txt menjadi mine.txt.
Mempertimbangkan file yang sama seperti yang digunakan contoh di atas :
104
Jadi kita melihat bahwa output menunjukkan perubahan yang tidak digabungkan.
6. Keluarkan file gabungan menggunakan opsi -m
File gabungan yang terdiri dari konten dari ketiga file dapat diproduksi menggunakan opsi -m. Misalnya, jika berikut adalah tiga file:
111
Sekarang jika diff3 dijalankan menggunakan opsi -m :
126
Jadi output di atas menunjukkan konten file gabungan yang telah menggabungkan konten dari ketiga file yang disediakan sebagai argumen untuk diff3.
7. Memahami konflik menggunakan opsi -m
Memproduksi file gabungan (dari tiga file) tidak selalu mudah (seperti yang ditunjukkan pada contoh di atas).
Perhatikan isi file input di bawah ini :
131
Jika diff3 dijalankan di atas file di atas, output berikut akan ditampilkan:
143
Di sini dua baris pertama adalah bagian tak terbantahkan dari file gabungan tetapi konflik sebenarnya ditunjukkan antara <<<<<<
8. Terima satu argumen dari stdin menggunakan ‘-‘
A '-' dapat digunakan sebagai pengganti salah satu nama file untuk menerima input dari stdin untuk argumen itu.
156
Seperti yang kita lihat, ketika perintah di atas dijalankan, konten file ketiga diberikan melalui stdin. Perhatikan bahwa setelah memasukkan isi file dari stdin, seseorang perlu menekan kombinasi tombol ctrl+d untuk mendapatkan output dari diff3.
9. diff3 menggunakan alat diff untuk membandingkan file
Meskipun diff3 membanggakan membandingkan 3 file tetapi sebenarnya menggunakan alat diff secara internal untuk melakukan perbandingan antara dua file. Hal ini dapat dikonfirmasi dengan melewatkan executable sebagai argumen input:
162
Jadi bisa kita lihat pada output di atas, error perintah diff3 keluar yang mengatakan bahwa program anak 'diff' gagal.
10. Tentukan program diff melalui opsi –diff-program
perintah diff3 memberikan fleksibilitas untuk menyediakan program diff sebagai argumen sehingga hal yang sama dapat digunakan untuk membandingkan file dan memberikan hasil yang dapat digunakan diff3. Fungsionalitas ini dicapai dengan menggunakan opsi –diff-program.
176
11. Perlakukan semua file sebagai teks menggunakan opsi -a
Seperti yang Anda lihat pada contoh 9 yang ditunjukkan di atas, ketika kami melewati file non teks (a.out yang dapat dieksekusi) maka diff3 mengembalikan kesalahan. Tetapi jika kita ingin memberitahu diff3 untuk membandingkan bahkan file non teks, maka opsi -a dapat digunakan yang memberitahu diff3 untuk mempertimbangkan semua file input sebagai file teks. Misalnya :
183
Jadi output di atas menunjukkan bahwa diff3 mencoba membandingkan bahkan file yang dapat dieksekusi yang memperlakukannya sebagai file teks.
Artikel Perbedaan Tambahan
- 4 Alat Pembeda File Teratas di UNIX / Linux – Diff, Colordiff, Wdiff, Vimdiff
- BZ itu Eazy! contoh bzdiff
- Perbedaan File Visual dengan Vimdiff – Itu Membuat Perbedaan!
- Kekuatan Perintah Z – Contoh Zdiff