GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana melakukan perbandingan file baris demi baris di Linux menggunakan perintah diff

Jika Anda adalah pengguna Linux, dan pekerjaan Anda melibatkan mengerjakan berbagai distribusi Linux, mungkin ada saatnya Anda harus mengetik perintah di sistem Linux tanpa GUI. Ini berarti Anda tidak lagi dapat mengakses aplikasi GUI favorit Anda - misalnya, Gedit untuk mengedit file - yang biasanya Anda gunakan untuk pekerjaan biasa.

Terlepas dari apakah Anda seorang admin sistem atau pengembang, perbandingan file adalah tugas yang umum untuk pekerjaan hampir semua orang. Bagaimana jika Anda perlu membandingkan dua file saat bekerja pada sistem Linux khusus CLI? Alat perbandingan berbasis GUI favorit Anda jelas tidak akan tersedia untuk Anda. Tak perlu dikatakan, Anda harus puas dengan utilitas baris perintah untuk menyelesaikan pekerjaan Anda.

Di Linux, perintah diff dapat digunakan untuk membandingkan dua file, tetapi masalahnya ada sedikit kurva pembelajaran yang terlibat dengan utilitas ini. Jika Anda tidak tahu cara kerja diff, dan sedang mencari tutorial singkat untuk memulai, tidak perlu mencari lagi, karena dalam artikel ini, kita akan membahas dasar-dasar perintah ini beserta beberapa contoh yang mudah dipahami.

Sebelum melanjutkan, perlu diingat bahwa semua contoh dalam tutorial ini telah diuji di Ubuntu 14.04 dengan Bash versi 4.3.11(1) dan diff versi 3.3.

 

Perintah Diff Linux

Daripada langsung melompat ke contoh, ada baiknya untuk mengetahui sedikit tentang perintahnya terlebih dahulu. Halaman manual dari perintah diff menunjukkan bahwa alat tersebut membandingkan file baris demi baris. Sintaksnya adalah:

diff [OPTION]... FILES

Sementara [OPSI] mewakili berbagai opsi baris perintah yang ditawarkan alat ini, FILES biasanya beberapa nama file. Meskipun halaman manual diff berisi informasi yang berguna tentang perintah, dokumentasi lengkap untuk diff dipertahankan sebagai manual Texinfo. Jika info dan perbedaan program diinstal dengan benar di situs Anda, perintah

perbedaan info

akan memberi Anda akses ke manual lengkap.

Penggunaan/Contoh Perbedaan

Sekarang mari kita bahas bagaimana diff digunakan. Untuk ini, mari kita mulai dengan contoh dasar. Misalkan berikut adalah dua file yang ingin kita bandingkan:

file1:

tes
tes2
tes3

file2:

test
test23
test3

Berikut cara menggunakan perintah diff untuk membandingkan kedua file ini:

diff file1 file2

Dan inilah output dari perintah di atas:

2c2
---
> test23

Outputnya tampak samar, bukan? Kami akan membahasnya sebentar lagi. Mari kita pahami dulu struktur dasar dari output yang dihasilkan diff secara umum.

Hal pertama yang perlu diingat adalah bahwa output mewakili perubahan yang diperlukan untuk mengubah file1 (biasanya file asli) menjadi file2 (file baru atau yang diubah). Output biasanya terdiri dari baris yang dimulai dengan angka (atau rentang) diikuti dengan alfabet (a,d, atau c) dan angka lain (atau rentang). Misalnya 2c2 (dari output di atas).

Angka pertama mewakili baris (atau rentang baris) dari file1 (file asli), sedangkan angka terakhir mewakili baris (atau rentang baris) dari file2 (file baru). Untuk alfabet di antaranya, a mewakili ditambahkan , d adalah untuk dihapus, dan c mewakili berubah .

Jadi, 2c2 berarti baris kedua dalam file asli telah diubah dan perlu diganti dengan baris kedua dari file baru untuk membuat file-file tersebut sama. Jika Anda membandingkan dua file secara manual (file1 dan file2) maka Anda akan melihat bahwa itulah masalahnya.

Adapun tiga baris yang mengikuti 2c2 dalam contoh di atas, yang dimulai dengan '<' tidak lain adalah baris kedua dari file1, dan yang dimulai dengan '>' tidak lain adalah baris yang dimaksud dari file 2. Tiga tanda hubung di antaranya (---) hanya untuk pemisahan.

Apakah ada kebutuhan untuk meninjau kembali output dari contoh pertama sekarang? Kemungkinan besar bukan karena penjelasan di atas seharusnya sudah cukup jelas. Sekarang, mari kita ambil contoh lain.

Jadi, inilah file1:

Hai semua,
Ini adalah tutorial perintah diff
dari HowtoForge.
Semoga Anda mendapat manfaat darinya.
Terima kasih.

Ini file2:

Halo semuanya,
Selamat datang di HowtoForge.
Dalam tutorial ini, kita akan membahas alat diff.
Semoga bermanfaat.
Terima kasih.

Berikut perintahnya (yang tetap sama):

diff file1 file2

Dan inilah hasilnya:

2,4c2,4
----
> Selamat datang di HowtoForge.
> Dalam tutorial ini, kita akan membahas alat diff.
> Semoga bermanfaat.

Jadi Anda dapat melihat bahwa dalam kasus ini, output utama - 2,4c2,4 - terdiri dari beberapa angka baik sebelum dan sesudah alfabet. Ini pada dasarnya adalah rentang - 2,4 mewakili nomor baris 2,3, dan 4. Jadi outputnya berarti bahwa nomor baris 2 hingga 4 dalam file asli (file1) telah berubah, dan perlu diganti dengan nomor baris 2 hingga 4 dari file2 untuk membuat file sama.

Pindah, mari kita ubah sedikit isi file. Sementara file1 tetap sama, file2 sekarang menjadi:

Selamat datang di HowtoForge.
Dalam tutorial ini, kita akan membahas alat diff.
Semoga bermanfaat.
Terima kasih.

Ini adalah tutorial perintah diff
dari HowtoForge.
Semoga Anda mendapat manfaat darinya.
Terima kasih.

Sekarang, jika Anda menjalankan perintah diff, output berikut akan dihasilkan:

0a1,5
> Selamat datang di HowtoForge.
> Dalam tutorial ini, kita akan membahas alat diff.
> Semoga bermanfaat.
> Terima kasih.
>

Jadi Anda dapat melihat bahwa alat tersebut segera mengenali bahwa paragraf kedua di file2 tidak lain adalah isi dari semua file1. Jadi outputnya mengatakan bahwa baris 1 sampai 5 dari file2 harus ditambahkan di awal file1 untuk membuat kedua file menjadi sama.

Dan jika Anda menghapus baris terakhir ("Terima kasih.") dari file2, inilah hasilnya:

0a1,5
> Selamat datang di HowtoForge.
> Dalam tutorial ini, kita akan membahas alat diff.
> Semoga bermanfaat.
> Terima kasih.
>
4d8

Anda dapat melihat bahwa keluaran sekarang juga berisi 4d8,  yang berarti bahwa baris keempat di file1 harus dihapus untuk membuat kedua file sinkron dimulai dari baris nomor 8. Tentu saja, ini setelah Anda mengatasi perubahan 0a1,5 yang disebutkan terlebih dahulu.

Kesimpulan

Setuju, output dari perintah diff tidak mudah dipahami, tetapi kurva pembelajarannya tidak terlalu curam. Habiskan beberapa jam dengan alat ini, dan Anda pasti akan merasa nyaman dengannya. Adapun tutorial, kami baru saja menggores permukaan di sini. Lihat halaman manual perintah, dan Anda akan menyadari bahwa masih banyak yang harus dipelajari tentang diff, sesuatu yang akan kita lakukan di bagian selanjutnya dari seri tutorial ini.


Linux
  1. Bagaimana Cara Mengompres dan Mengekstrak File Menggunakan Perintah tar di Linux?

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. Cara Mentransfer file dengan aman menggunakan Perintah SCP di Linux

  1. Bagaimana melakukan perbandingan baris demi baris file di Linux menggunakan perintah diff - Bagian II

  2. Cara membuat file sparse di Linux menggunakan perintah 'dd'

  3. Cara melihat file tersembunyi menggunakan perintah `find` Linux

  1. Cara Mengganti Nama File di Linux

  2. Cara Reboot Linux Menggunakan Command Line

  3. Cara Mengurutkan File di Linux menggunakan Perintah Sortir