Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Membandingkan Dua File Teks di Terminal Linux

Posted on October 6, 2023

Tautan Cepat
Apa itu Perintah diff?Perintah satu baris yang berguna dengan diffPandangan Alternatif dari diffTambahkan Percikan Warna Untuk Membedakan OutputMemberikan Beberapa KonteksMengabaikan Spasi Putih dan CaseKey Takeaways
Perintah diff digunakan untuk membandingkan dua file dan menampilkan perbedaan di antara keduanya, termasuk perubahan, penghapusan, dan penambahan. Output dari perintah diff mencakup nomor baris dan label untuk menunjukkan jenis perbedaan (perubahan, penghapusan, atau penambahan). Ada berbagai pilihan yang tersedia untuk menggunakan perintah diff, seperti menampilkan pernyataan singkat tentang perbedaan file, tampilan berdampingan, mengabaikan spasi dan huruf besar/kecil, dan memberikan konteks untuk perbedaan tersebut.

Perlu melihat perbedaan antara dua revisi file teks? Maka diff adalah perintah yang Anda butuhkan. Kami akan menunjukkan cara menggunakan diff di Linux dan macOS, dengan cara yang mudah. ​​

Apa itu Perintah diff?

Perintah diff membandingkan dua file dan menghasilkan daftar perbedaan antara keduanya. Agar lebih akurat, ini menghasilkan daftar perubahan yang perlu dilakukan pada file pertama, agar cocok dengan file kedua. Jika Anda mengingatnya, Anda akan lebih mudah memahami keluaran dari diff. Perintah diff dirancang untuk menemukan perbedaan antara file kode sumber dan untuk menghasilkan keluaran yang dapat dibaca dan ditindaklanjuti oleh program lain, seperti perintah patch. Dalam tutorial ini, kita akan melihat cara paling ramah manusia untuk menggunakan diff.

Cara Menggunakan Perintah diff

Mari selami dan analisis dua file. Urutan file pada baris perintah menentukan file diff mana yang dianggap sebagai `file pertama` dan mana yang dianggap sebagai “file kedua”. Pada contoh di bawah alpha1 adalah file pertama, dan alpha2 adalah file kedua. Kedua file berisi alfabet fonetik tetapi file kedua, alpha2, telah mengalami beberapa pengeditan lebih lanjut sehingga kedua file tersebut tidak identik.

Kita dapat membandingkan file dengan perintah ini. Ketik diff, spasi, nama file pertama, spasi, nama file kedua, lalu tekan Enter.

diff alpha1 alpha2

Bagaimana cara kita membedah output tersebut? Setelah Anda tahu apa yang harus dicari, itu tidak terlalu buruk. Setiap perbedaan dicantumkan secara bergantian dalam satu kolom, dan setiap perbedaan diberi label. Label berisi angka di kedua sisi huruf, seperti 4c4. Angka pertama adalah nomor baris di alpha1, dan angka kedua adalah nomor baris di alpha2. Huruf di tengahnya bisa berupa:

c: Baris pada file pertama perlu diubah agar sesuai dengan baris pada file kedua. d: Baris pada file pertama harus dihapus agar sesuai dengan file kedua. a: Konten tambahan harus ditambahkan ke file pertama agar cocok dengan file kedua.

4c4 dalam contoh kita memberi tahu kita bahwa baris empat alpha1 harus diubah agar cocok dengan baris empat alpha2. Ini adalah perbedaan pertama antara dua file yang ditemukan berbeda.

Garis yang dimulai dengan merujuk ke file kedua, alpha2. Baris Dave memberitahu kita bahwa kata Dave adalah isi baris empat di alpha2. Untuk meringkasnya, kita perlu mengganti Delta dengan Dave pada baris empat di alpha1, untuk membuat baris tersebut cocok di kedua file.

Perubahan selanjutnya ditunjukkan oleh 12c12. Menerapkan logika yang sama, ini memberitahu kita bahwa baris 12 di alpha1 berisi kata Lima, tetapi baris 12 dari alpha2 berisi kata Linux.

Perubahan ketiga mengacu pada baris yang telah dihapus dari alpha2. Label 21d20 diartikan sebagai “baris 21 perlu dihapus dari file pertama agar kedua file disinkronkan dari baris 20 dan seterusnya.” Garis < Uniform menunjukkan kepada kita isi baris yang perlu dihapus dari alpha1.

Perbedaan keempat diberi label 26a26,28. Perubahan ini mengacu pada tiga baris tambahan yang telah ditambahkan ke alpha2. Perhatikan angka 26,28 pada labelnya. Nomor dua baris yang dipisahkan dengan koma mewakili rentang nomor baris. Dalam contoh ini, rentangnya adalah dari baris 26 hingga baris 28. Labelnya diartikan sebagai “pada baris 26 pada file pertama, tambahkan baris 26 hingga 28 dari file kedua.” Kita diperlihatkan tiga baris di alpha2 yang perlu ditambahkan ke alpha1. Ini berisi kata-kata Quirk, Strange, dan Charm.

Perintah satu baris yang berguna dengan diff

Jika yang ingin Anda ketahui hanyalah apakah dua file itu sama, gunakan opsi -s (laporkan file yang identik).

diff -s alpha1 alpha3

Anda bisa gunakan opsi -q (singkat) untuk mendapatkan pernyataan yang sama singkatnya tentang dua file yang berbeda.

diff -q alpha1 alpha2

Satu hal yang harus diperhatikan adalah bahwa dengan dua file yang identik, opsi-q (singkat) benar-benar macet dan tidak laporkan apa pun.

Pandangan Alternatif dari diff

Opsi -y (berdampingan) menggunakan tata letak berbeda untuk menjelaskan perbedaan file. Seringkali lebih mudah menggunakan opsi -W (lebar) dengan tampilan berdampingan, untuk membatasi jumlah kolom yang ditampilkan. Hal ini untuk menghindari garis-garis jelek yang membuat keluaran sulit dibaca. Di sini kami telah memberi tahu diff untuk menghasilkan tampilan berdampingan dan membatasi output hingga 70 kolom.

diff -y -W 70 alpha1 alpha2

File pertama pada baris perintah, alpha1, ditampilkan di sebelah kiri dan baris kedua pada perintah garis, alpha2, ditampilkan di sebelah kanan. Baris dari setiap file ditampilkan, berdampingan. Ada karakter indikator di samping baris-baris di alpha2 yang telah diubah, dihapus atau ditambahkan.

|: Baris yang telah diubah di file kedua. : Baris yang ditambahkan ke file kedua yang tidak ada di file pertama.

Jika Anda lebih suka ringkasan perbedaan file yang lebih ringkas, gunakan opsi –suppress-common-lines. Ini memaksa diff untuk mencantumkan baris yang diubah, ditambahkan, atau dihapus saja.

diff -y -W 70 –suppress-common-lines alpha1 alpha2

Tambahkan Percikan Warna Untuk membedakan Output

Utilitas lain yang disebut colordiff menambahkan penyorotan warna pada keluaran diff. Hal ini membuatnya lebih mudah untuk melihat baris mana yang memiliki perbedaan.

Gunakan apt-get untuk menginstal paket ini ke sistem Anda jika Anda menggunakan Ubuntu atau distribusi berbasis Debian lainnya. Di distribusi Linux lainnya, gunakan alat manajemen paket distribusi Linux Anda.

sudo apt-get install colordiff

Gunakan colordiff sama seperti Anda menggunakan diff.

Sebenarnya, colordiff adalah pembungkus untuk diff, dan diff melakukan semua pekerjaan di belakang layar. Karena itu, semua opsi diff akan bekerja dengan colordiff.

Memberikan Beberapa Konteks

Untuk menemukan jalan tengah antara menampilkan semua baris dalam file di layar dan hanya mencantumkan baris yang diubah, kita dapat meminta diff untuk memberikan beberapa konteks. Ada dua cara untuk melakukan ini. Kedua cara tersebut memiliki tujuan yang sama, yaitu menampilkan beberapa baris sebelum dan sesudah setiap baris yang diubah. Anda akan dapat melihat apa yang terjadi di file di tempat perbedaan terdeteksi.

Metode pertama menggunakan opsi -c (konteks yang disalin).

colordiff -c alpha1 alpha2

Output diff memiliki header. Header mencantumkan dua nama file dan waktu modifikasinya. Ada tanda bintang (*) sebelum nama file pertama dan tanda hubung (-) sebelum nama file kedua. Tanda bintang dan tanda hubung akan digunakan untuk menunjukkan file mana yang memiliki baris-baris dalam keluaran. Baris tanda bintang dengan 1,7 di tengah menunjukkan bahwa kita sedang melihat baris dari alpha1. Tepatnya, kita sedang melihat baris satu sampai tujuh. Kata Delta ditandai telah diubah. Ada tanda seru ( ! ) di sampingnya, dan warnanya merah. Ada tiga baris teks yang tidak diubah yang ditampilkan sebelum dan sesudah baris itu sehingga kita dapat melihat konteks baris tersebut di file.

Baris tanda hubung dengan 1,7 di tengahnya memberi tahu kita bahwa kita sekarang sedang melihat baris dari alpha2. Sekali lagi, kita melihat baris satu sampai tujuh, dengan kata Dave pada baris empat ditandai sebagai berbeda.

Tiga baris konteks di atas dan di bawah setiap perubahan adalah nilai default. Anda dapat menentukan berapa banyak baris konteks yang ingin Anda berikan berbeda. Untuk melakukannya, gunakan opsi -C (konteks yang disalin) dengan huruf kapital “C” dan berikan jumlah baris yang Anda inginkan:

colordiff -C 2 alpha1 alpha2

Opsi diff kedua yang menawarkan konteks adalah -u (konteks terpadu) option.

colordiff -u alpha1 alpha2

Seperti sebelumnya, kami memiliki header pada output. Kedua file diberi nama, dan waktu modifikasinya ditampilkan. Terdapat tanda hubung (-) sebelum nama alpha1 dan tanda tambah (+) sebelum nama alpha2. Ini memberitahu kita bahwa tanda hubung akan digunakan untuk merujuk pada alpha1 dan tanda plus akan digunakan untuk merujuk pada alpha2. Tersebar di seluruh daftar adalah baris yang dimulai dengan tanda (@). Garis-garis ini menandai awal dari setiap perbedaan. Mereka juga memberi tahu kita baris mana yang ditampilkan dari setiap file.

Kita diperlihatkan tiga baris sebelum dan sesudah baris yang ditandai sebagai berbeda sehingga kita dapat melihat konteks baris yang diubah. Dalam tampilan terpadu, garis-garis dengan perbedaan ditampilkan satu di atas yang lain. Garis dari alpha1 diawali dengan tanda hubung dan garis dari alpha2 diawali dengan tanda plus. Tampilan ini menghasilkan delapan baris yang membutuhkan lima belas baris dari tampilan konteks yang disalin di atas.

Seperti yang Anda harapkan, kita dapat meminta diff untuk memberikan jumlah baris konteks terpadu yang ingin kita lihat. Untuk melakukan ini, gunakan opsi -U (konteks terpadu) dengan huruf kapital “U” dan berikan jumlah baris yang Anda inginkan:

colordiff -U 2 alpha1 alpha2

Mengabaikan Spasi Putih dan Kasus

Mari kita menganalisis dua file lainnya, test4 dan test5. Ini memiliki nama enam pahlawan super di dalamnya.

colordiff -y -W 70 test4 test5

Hasilnya menunjukkan bahwa diff tidak menemukan perbedaan dengan garis Black Widow, Spider-Man dan Thor. Itu menandai perubahan dengan garis Captain America, Ironman, dan The Hulk.

Jadi apa bedanya? Nah, di test5 Hulk dieja dengan huruf kecil “h”, dan Captain America memiliki spasi ekstra antara “Captain” dan “America”. Oke, itu jelas terlihat, tapi apa yang salah dengan garis Ironman? Tidak ada perbedaan yang terlihat. Inilah aturan praktis yang bagus. Jika Anda tidak bisa melihatnya, jawabannya adalah spasi. Hampir pasti ada satu atau dua spasi, atau karakter tab, di akhir baris itu.

Jika itu tidak penting bagi Anda, Anda dapat menginstruksikan diff untuk mengabaikan jenis perbedaan baris tertentu, termasuk:

-i: Abaikan perbedaan dalam hal. -Z: Abaikan spasi putih tambahan. -b: Abaikan perubahan jumlah spasi. -w: Abaikan semua perubahan spasi.

Mari kita tanyakan diff untuk memeriksa kedua file itu lagi, tapi kali ini untuk mengabaikan perbedaan case.

colordiff -i -y -W 70 test4 test5

Baris dengan “The Hulk” dan “The hulk” sekarang dianggap cocok, dan tidak ada perbedaan ditandai dengan huruf kecil “h.” Mari kita minta diff untuk juga mengabaikan spasi tambahan.

colordiff -i -Z -y -W 70 test4 test5

Seperti yang diduga, spasi tambahan pasti merupakan perbedaan pada garis Ironman karena diff tidak lagi menandai perbedaan untuk garis tersebut. Tinggal Captain America. Mari kita minta diff untuk mengabaikan huruf besar dan kecil dan mengabaikan semua masalah spasi.

colordiff -i -w -y -W 70 test4 test5

Dengan memberi tahu diff untuk mengabaikan perbedaan yang tidak kita khawatirkan, diff memberi tahu kita bahwa, untuk tujuan kita , file cocok.

Perintah diff memiliki lebih banyak opsi, tetapi sebagian besar terkait dengan menghasilkan keluaran yang dapat dibaca mesin. Ini dapat ditinjau di halaman manual Linux. Opsi yang kami gunakan pada contoh di atas akan memungkinkan Anda melacak semua perbedaan antara versi file teks Anda, menggunakan baris perintah dan pandangan manusia.

Linux Commands

Files

tar·pv·cat·tac·chmod·grep·diff·sed ·ar·man·pushd·popd·fsck·testdisk·seq·fd·pandoc·cd·$PATH·awk·join·jq·fold·uniq·journalctl·tail·stat·ls·fstab·echo·less·chgrp· chown·rev·look·strings·type·rename·zip·unzip·mount·umount·install·fdisk·mkfs·rm·rmdir·rsync·df·gpg·vi·nano·mkdir·du·ln·patch·convert· rclone·rusak·srm·scp·gzip·chattr·potong·temukan·umask·wc· tr

Proses

alias·layar·atas·bagus·renice·kemajuan·strace·sistemd·tmux·chsh·sejarah·di·batch·gratis·yang· dmesg·chfn·usermod·ps·chroot·xargs·tty·pinky·lsof·vmstat·timeout·wall·yes·kill·sleep·sudo·su·time·groupadd·usermod·groups·lshw·shutdown·reboot·halt· poweroff·passwd·lscpu·crontab·date·bg·fg·pidof·nohup·pmap

Networking

netstat·ping·traceroute·ip·ss·whois·fail2ban·bmon·dig·finger·nmap·ftp·curl·wget·who·whoami· w·iptables·ssh-keygen·ufw·arping·firewalld

Terbaru

  • “Listrik Gratis” dari Solar Panel Cuma Mitos?! Ini Sisi Gelap PLTS
  • Samsung Galaxy Z-Fold: Uji Jatuh Bebas yang Mengguncang Keandalan Lipatannya
  • Google One 2026: Apa yang Akan Jadi Fitur Utama dan Harga yang Diharapkan?
  • Apa Itu Error 0x800704f8? Ini Pengertian dan Cara Mengatasinya
  • Android Akhirnya Dapat GPS Darurat di India! Setelah Hampir 10 Tahun
  • Apa Itu GetContact Premium? Ini Pengertian dan Cara Daftarnya
  • Android Maze Figure: Koleksi Baru Google yang Bikin Penggemar Bergairah!
  • Google Update Besar-besaran Desember 2025: Apa yang Akan Memengaruhi Pengalaman Anda?
  • Masih Pusing Hitung Gaji Manual? Waktunya Pakai Aplikasi HR
  • Apa Itu Dustruco? Ini Pengertian dan Cara Pasangnya di HP Kalian
  • Apa Itu Aplikasi Dooie Live? Ini Pengertian dan Cara Pakai Aplikasinya untuk Cari Jodoh
  • Apa Itu Battle Emote Jefri Nichol dan Om Telolet Om di MLBB? Ini Penjelasannya
  • Apa itu Game Luna Mobile dan Bagaimana Cara Menangnya?
  • Apa Itu Kompensasi Sistem Trail Mobile Legends? Ini Penjelasan dan Cara Klaim Hadiahnya
  • Apa Itu Update Google Pixel 2 Desember 2025? Ini Penjelasannya!
  • Ini Cara Reset Desil di Aplikasi Cek Bansos Biar Valid (Update Januari 2026)
  • Apa Itu EZNET Wireless dan Fiber Optic? Ini Perbedaan dan Pengertian Lengkapnya
  • Pengertian Rework Magic Wheel dan Rank Mythic Eternal: Apa itu Perubahan Sistem Baru Mobile Legends?
  • Apa Itu Diamond Combo? Pengertian Game Puzzle Viral yang Katanya Bisa Hasilkan Cuan
  • Apa Itu Showbox? Pengertian, Fungsi, dan Cara Menggunakannya di Android
  • Cara Mengatasi Fitur Monet Facebook Pro Tiba-tiba Hilang
  • Google Bikin Kejutan! Pixel 10 Diskon Gila-gilaan di YouTube Premium
  • Apa Itu Google CC? Ini Pengertian Agen Produktivitas AI Eksperimental Terbaru
  • Apa Itu Ultras Seblak di eSport? Pengertian dan Fenomena Baru Suporter eSport
  • Android 16: Animasi Folder Baru yang Mengubah Cara Kita Berinteraksi!
  • Android 16: Notifikasi Lokasi ‘Blue Dot’ – Fitur Baru yang Perlu Kalian Ketahui!
  • Apa Itu Risiko Auto Click di Event Spongebob Mobile Legends? Ini Penjelasannya
  • Apa Itu Fitur Eksperimental Windows? Ini Pengertian dan Cara Menonaktifkannya
  • Apa Itu Android 16 Beta 1? Ini Pengertian dan Fitur Terbarunya
  • Belum Tahu? Ini Trik Supaya Bisa Dapat Skin Patrick Mobile Legends dengan Harga Murah
  • Apa itu Cosmic Desktop: Pengertian dan Cara Pasangnya di Ubuntu 26.04?
  • Apa Itu Auvidea X242? Pengertian Carrier Board Jetson T5000 dengan Dual 10Gbe
  • Elementary OS 8.1 Resmi Rilis: Kini Pakai Wayland Secara Standar!
  • Apa Itu Raspberry Pi Imager? Pengertian dan Pembaruan Versi 2.0.3 yang Wajib Kalian Tahu
  • Performa Maksimal! Ini Cara Manual Update Ubuntu ke Linux Kernel 6.18 LTS
  • Jelang Natal 2025 Fireworks.AI Beri Update Baru di NVIDIA Nemotron 3? Ini Penjelasan Lengkapnya
  • Apa Itu Elestio VibeCoder? Ini Pengertian dan Penjelasan Lengkapnya
  • Apa Itu Elestio Get A Team? Ini Pengertian Karyawan AI Digital
  • Apa itu RunPod? Ini Pengertian dan Tutorial Cara Deploy Pod Pertamamu
  • Apa Itu Migrasi Pod di RunPod? Ini Pengertian dan Cara Kerjanya
  • Gila! 574 Penjahat Siber Diciduk Interpol di Afrika, Kok Bisa Jaringannya Segede Ini?
  • Apa Itu Regulasi Drone Asing FAA? Ini Pengertian dan Implikasinya
  • Apa Itu Insiden Data Breach Nissan? Ini Kronologi dan Penjelasannya
  • Apa Itu Skandal Instacart? Pengertian Dark Pattern dan Refund 940 Miliar
  • Apa Itu Kerentanan UEFI? Pengertian Celah Keamanan DMA pada Booting Awal
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV

©2025 emka.web.id | Design: Newspaperly WordPress Theme