GNU/Linux >> Belajar Linux >  >> Linux

Perintah Diff di Linux dengan Contoh

Ketika datang ke perbandingan file, perangkat lunak berbasis GUI sebagian besar digunakan. Jika Anda pengguna Linux, saya rasa Anda harus tahu cara membandingkan dua file melalui baris perintah karena ini jelas merupakan metode cepat setelah Anda terbiasa.

Dalam tutorial ini, kita akan belajar bagaimana menggunakan perintah diff melalui beberapa contoh praktis.

Perintah diff Linux

Mari kita pahami perintah diff Linux melalui beberapa contoh praktis.

Misalkan kita memiliki dua file ini (file1 dan file2) :

$ cat file1
Hi,
Hello,
How are you?
I am fine,
Thank you.
$ cat file2
Hello,
Hi,
How are you?
I am fine.

Anda dapat melihat bahwa kedua file memiliki beberapa perbedaan kecil. Sekarang, mari kita lihat bagaimana perintah diff dapat digunakan untuk memunculkan perbedaan ini.

Inilah cara Anda menjalankan perintah diff :

$ diff file1 file2
1d0
< Hi, 2a2 > Hi,
4,5c4
< I am fine,
< Thank you.

---

> I am fine.

Jadi Anda dapat melihat bahwa perintah diff diberikan dengan kedua nama file sebagai argumen baris perintah dan menghasilkan perbedaan dalam output. Outputnya sama sekali tidak mudah dipahami. Alasannya, itu dirancang untuk digunakan oleh komputer dan bukan manusia. Meskipun demikian, mari kita decode output sepotong demi sepotong:

CATATAN - File file1 dan file2 akan dialamatkan sebagai file lama dan file baru dalam teks berikut.

1d0
< Hi,

Di sini, baris 1d0 berarti baris pertama dari file lama harus dihapus (d) untuk menyinkronkan kedua file yang dimulai dari baris 0. Baris yang akan dihapus di file lama disebutkan tepat di bawah dengan tanda <.

2a2
> Hi,

Di sini, baris 2a2 berarti bahwa baris kedua dari file baru harus ditambahkan setelah baris kedua dari file lama. Baris yang akan ditambahkan ditampilkan di baris berikutnya dari output dengan tanda>.

4,5c4
< I am fine,
< Thank you.

---

> I am fine.

Di sini, baris 4,5c4 berarti bahwa nomor baris mulai dari 4 hingga 5 di file lama sekarang diubah dan harus diganti dengan baris ke-4 dari file baru. Baris yang akan ditambahkan dan dihapus masing-masing ditandai dengan> dan <.

Jadi, untuk menyimpulkan,

  • Argumen pertama pada perintah diff dianggap sebagai file lama sedangkan argumen kedua menjadi file baru.
  • Ekspresi seperti 1d0 2a2, 4,5c4 dapat didekodekan dengan sintaks [nomor baris atau rentang dari file lama][tindakan][nomor baris atau rentang dari file baru] . Dimana, 'action' dapat ditambahkan, dihapus atau diubah-jadi-ganti.
  • Tanda mewakili baris yang akan ditambahkan.

Selain file, perintah diff juga dapat digunakan untuk membandingkan dua direktori. Mari kita pelajari ini melalui sebuah contoh.

Berikut adalah isi dari direktori bernama 'new_dir' :

$ ls new_dir/
file file2 frnd frnd1.cpp log1.txt log3.txt log5.txt
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt

dan berikut adalah isi dari direktori bernama 'old_dir' :

$ ls orig_dir/
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt test
file2 frnd frnd1.cpp log1.txt log3.txt log5.txt

Sekarang, ini adalah output ketika perintah diff dijalankan :

$ diff new_dir/ orig_dir/
Only in new_dir/: file
Only in orig_dir/: test

Jadi Anda dapat melihat bahwa ketika perintah diff dijalankan untuk membandingkan dua direktori ini, ia dengan mudah menampilkan file yang hilang di direktori.

Berikut adalah beberapa opsi baris perintah yang umum digunakan :

1) Gunakan -i untuk mengabaikan perbedaan huruf besar/kecil

Jika dua file berisi teks yang sama tetapi dalam kasus yang berbeda, perintah diff masih melaporkannya sebagai perbedaan secara default.

Misalnya :

$ cat file1
HI
$ cat file2
hi
$ diff file1 file2
1c1
< HI --- > hi

Jadi Anda dapat melihat bahwa perintah diff melaporkan perbedaan huruf pada output.

Untuk menghindari perilaku default ini, gunakan opsi -i.

Ini contohnya :

$ diff -i file1 file2
$

Jadi Anda dapat melihat bahwa tidak ada output yang dihasilkan, yang merupakan perilaku default ketika kedua file sama.

2) Laporkan Bahwa File Sama Menggunakan Opsi -s

Menjelang akhir contoh 1, kami melihat bahwa diff tidak melaporkan apa pun jika file sama. Meskipun perilaku default ini baik-baik saja tetapi masih bisa membingungkan banyak orang, terutama para pemula. Jadi, jika Anda ingin perintah diff melaporkan secara eksplisit bahwa file-file tersebut sama, gunakan opsi baris perintah -s.

Ini contohnya :

$ diff -is file1 file2
Files file1 and file2 are identical

Jadi Anda dapat melihat bahwa saya menambahkan opsi -s pada perintah yang kita gunakan pada contoh terakhir dan kali ini perintah diff secara eksplisit melaporkan bahwa kedua file tersebut identik.

3) Gunakan -b untuk Mengabaikan Spasi

Kasus penggunaan umum lainnya adalah jumlah spasi yang bervariasi di mana perintah diff melaporkan file sebagai berbeda.

Ini contohnya :

$ cat file1
Hi, how are you?

$ cat file2
Hi, how are  you?

Perhatikan bahwa satu-satunya perbedaan antara file derek adalah ruang ekstra antara kata 'adalah' dan 'Anda' di file2. Sekarang, ketika perintah diff digunakan untuk membandingkan kedua file ini, berikut adalah outputnya :

$ diff file1 file2
1c1
< Hi, how are you?

---

> Hi, how are  you?

Jadi Anda dapat melihat bahwa perintah diff melaporkan perbedaannya. Tetapi jika Anda ingin diff mengabaikan spasi ini, gunakan opsi -b :

$ diff -b file1 file2
$

Jadi Anda dapat melihat bahwa karena opsi -b, perintah diff melaporkan kedua file sebagai sama.

Kiat perintah :

Perintah di bawah ini akan menampilkan semua perbedaan file antara dua folder

diff -Naur old/ new/

Perintah diff menyediakan lebih banyak opsi baris perintah. Baca halaman manualnya untuk daftar lengkapnya.


Linux
  1. perintah chattr di Linux dengan contoh

  2. ln Contoh Perintah di Linux

  3. File Contoh Perintah di Linux

  1. Perintah wc Linux dengan Contoh

  2. Urutkan Perintah di Linux dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. 10 Perintah Cepat Linux Tail dengan Contoh

  2. 9 Contoh Perintah diff di Linux

  3. Perintah ip Linux dengan Contoh