GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Perintah diff Linux

Pendahuluan

Linux diff perintah digunakan untuk membandingkan dua file baris demi baris dan menampilkan perbedaan di antara mereka. Utilitas baris perintah ini mencantumkan perubahan yang perlu Anda terapkan untuk membuat file menjadi identik.

Baca terus untuk mempelajari lebih lanjut tentang diff perintah dan opsinya dengan contoh yang mudah diikuti.

Sintaks diff

Sintaks untuk menggunakan diff perintahnya adalah:

diff [option] file1 file2

Sintaks Keluaran

Saat bekerja dengan diff , sangat penting untuk mengetahui bagaimana menginterpretasikan output, yang terdiri dari:

  • Keluaran dimulai dengan < mengacu pada konten dalam file pertama.
  • Keluaran dimulai dengan > mengacu pada konten dalam file kedua.
  • Nomor baris yang sesuai dengan file pertama.
  • Simbol khusus. Simbol khusus menunjukkan bagaimana file pertama perlu diedit agar sesuai dengan file kedua. Outputnya mungkin menampilkan:
    • a (tambahkan)
    • c (ubah)
    • d (hapus)
  • Nomor baris yang sesuai dengan file kedua.

Contoh perbedaan

Untuk menunjukkan bagaimana diff perintah berfungsi, kami membuat dua file sampel dan membandingkan kontennya.

Buat Dua File Contoh

1. Pertama, menggunakan terminal, buat file Linux bernama example1.txt . Kami menggunakan editor teks Nano, tetapi Anda dapat menggunakan editor teks pilihan Anda.

sudo nano example1.txt

2. Setelah editor teks membuat dan membuka file, tambahkan baris berikut ke dalamnya:

Apple
Orange
Banana
Watermelon
Chery

3. Simpan dan keluar dari file – tahan Ctrl + X dan konfirmasi dengan menekan Y .

4. Selanjutnya, buat example2.txt file dengan menjalankan:

sudo nano example2.txt

5. Tambahkan konten berikut ke file:

Orange
Peach
Apple
Banana
Melon
Cherry

6. Simpan perubahan dan keluar.

Bandingkan File dengan Perintah diff

1. Dengan dua file contoh di tempat, gunakan diff perintah untuk melihat perbedaannya dan cara membuatnya identik:

diff example1.txt example2.txt 

Outputnya mencantumkan instruksi tentang cara memodifikasi file pertama agar memiliki konten yang sama seperti di example2.txt . Mari kita lihat output untuk file sampel dan decode instruksinya.

  • 1d0 – Baris pertama (1 ) dari file pertama harus dihapus (d ). Jika tidak, itu akan muncul di baris 0 di file kedua.
  • < Apple –Konten yang perlu Anda hapus (sebagaimana dimaksud dengan 1d0 ).
  • 2a2,3 – Sebaris 2 dari file pertama, Anda harus menambahkan (a ) baris 2 dan 3 (2,3 ) dari file kedua.
  • > Peach , > Apple – Konten yang perlu Anda tambahkan (sebagaimana dimaksud dengan 2a2,3 ).
  • 4c5 – Baris keempat (4 ) dari file pertama harus diubah (c ) hingga baris kelima (5 ) dari file kedua.
  • < Watermelon – Konten yang perlu Anda ubah.
  • > Melon – Anda perlu mengubahnya menjadi apa.

Opsi perbedaan

Tanpa opsi tambahan, diff menampilkan output dalam format default. Ada beberapa cara untuk memodifikasi keluaran ini agar lebih mudah dipahami atau berlaku untuk kasus penggunaan Anda. Baca terus untuk mempelajari lebih lanjut tentang diff opsi perintah.

-c Opsi

Format konteksnya adalah diff opsi utilitas baris perintah yang menampilkan beberapa baris konteks di sekitar baris yang berbeda.

Untuk menampilkan perbedaan antar file dalam bentuk konteks, gunakan perintah:

diff -c file1 file2

Lihatlah output untuk file sampel dalam bentuk konteks pada gambar di bawah ini.

Baris yang menampilkan informasi tentang file pertama dimulai dengan *** , sedangkan baris yang menunjukkan file kedua dimulai dengan --- .

Dua baris pertama menampilkan nama dan stempel waktu kedua file:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

**************** - digunakan hanya sebagai pemisah.

Sebelum membuat daftar baris dari setiap file, output dimulai dengan rentang baris file:

***  1,5 ****
---  1,6 ----

Baris lainnya mencantumkan konten file. Awal setiap baris menginstruksikan cara memodifikasi example1.txt untuk membuatnya sama dengan example2.txt . Jika baris dimulai dengan:

- (minus) – perlu dihapus dari file pertama.
+ (plus) – perlu ditambahkan ke file pertama.
! (tanda seru) – perlu diubah ke baris yang sesuai dari file kedua.

Jika tidak ada simbol, garisnya tetap sama.

Oleh karena itu, pada contoh di atas, Anda harus menghapus Apple dari baris pertama, ganti Watermelon dengan Melon di baris empat, dan tambahkan Peach dan Apple ke baris dua dan tiga.

-u Opsi

Format terpadu adalah opsi yang dapat Anda tambahkan untuk menampilkan output tanpa baris konteks yang berlebihan. Untuk melakukannya, gunakan perintah:

diff -u file1 file2

Sekarang, mari kita periksa output untuk file sampel dalam format terpadu:

Baris yang menampilkan informasi tentang file pertama dimulai dengan --- , sedangkan baris yang menunjukkan file kedua dimulai dengan +++ .

Dua baris pertama menampilkan nama dan stempel waktu kedua file:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

@@ -1,5 +1,6 @@ - menunjukkan rentang baris untuk kedua file.

Baris di bawah ini menampilkan konten file dan cara memodifikasi example1.txt untuk membuatnya identik dengan example2.txt . Saat baris dimulai dengan:

- (minus) – perlu dihapus dari file pertama.
+ (plus) – perlu ditambahkan ke file pertama.

Jika tidak ada simbol, garisnya tetap sama.

Pada contoh di atas, output menginstruksikan bahwa Apple dan Watermelon harus dihapus, sedangkan Peach , Apple , dan Melon harus ditambahkan.

-i Opsi

Secara default, diff peka huruf besar/kecil. Jika Anda ingin mengabaikan huruf besar-kecil, tambahkan -i pilihan pada perintah:

diff -i file1 file2

Misalnya, jika kita membuat satu file dengan baris berikut:

Apple
Orange
Banana
Watermelon
Cherry

Dan file lain dengan konten:

Apple
orange
Banana
watermelon
Cherry

Keluaran tanpa opsi tambahan menunjukkan ada perbedaan antara file dan memberikan instruksi cara memodifikasinya.

Namun, jika Anda menambahkan -i opsi, tidak ada output karena perintah tidak mendeteksi perbedaan apa pun.

--opsi versi

Untuk memeriksa versi diff berjalan di sistem Anda, jalankan perintah:

diff --version

--opsi bantuan

Untuk menampilkan ringkasan diff penggunaan berjalan:

diff --help

Opsi perbedaan lainnya

Opsi lain yang diff dukungan meliputi:

-a / --text Melihat file sebagai teks dan membandingkannya baris demi baris.
-b / --ignore-space-change Abaikan spasi putih saat membandingkan file.
-B / --ignore-blank-lines< Abaikan baris kosong saat membandingkan file.
--binary Bandingkan dan tulis data dalam mode biner.
-d --minimal Ubah algoritme (misalnya, untuk menemukan kumpulan perubahan yang lebih kecil).
-e / --ed Jadikan keluaran sebagai ed yang valid naskah.
-E / --ignore-tab-expansion Abaikan ekstensi tab saat membandingkan file.
-l / --paginate Jalankan output melalui pr untuk membuat halamannya.
-N / --new-file Perlakukan file yang hilang sebagai ada tapi kosong.
-q / --brief Menampilkan apakah file berbeda tanpa menentukan detailnya.
-s / --report-identical-files Hasilkan jika filenya sama.
-w / --ignore-all-space Abaikan spasi saat membandingkan file.

Linux
  1. Cara menggunakan perintah grep Linux

  2. Cara menggunakan perintah history di Linux

  3. Cara Menggunakan Perintah Tar di Linux

  1. Cara Menggunakan Perintah sejarah Linux

  2. Cara Menggunakan Perintah md5sum di Linux

  3. Cara Menggunakan Perintah id di Linux

  1. Cara Menggunakan Perintah Linux xargs

  2. Cara Menggunakan Perintah tee Linux

  3. Cara Menggunakan Perintah teratas di Linux