Di FreeBSD atau sebagian besar sistem Linux, Anda dapat menyalurkan keluaran diff melalui cat -v -e -t
untuk menunjukkan perbedaan spasi putih.
diff file1 file2 | cat -vet
Tab akan ditampilkan sebagai ^I
, sebuah $
akan ditampilkan di akhir setiap baris sehingga Anda dapat melihat spasi kosong, dan karakter noncetak akan ditampilkan sebagai ^X
atau M-X
.
Jika Anda memiliki GNU coreutils (tersedia di sebagian besar distribusi Linux non-busybox), ini dapat disederhanakan menjadi
diff file1 file2 | cat -A
Pada sistem busybox, gunakan catv -vet
.
Untuk vim
pengguna, ada utilitas berguna untuk menunjukkan perbedaan yang tepat antara file:
vimdiff file1 file2
Ini akan menempatkan setiap file di windows, berdampingan, dan perbedaan dengan warna yang disorot.
Beberapa perintah berguna saat berada di vimdiff
Sedangkan di vimdiff
, beberapa perintah yang berguna adalah:
-
]c
:lompat ke perubahan berikutnya -
[c
:lompat ke perubahan sebelumnya -
ctrl-W ctrl-W
:beralih ke jendela lain -
zo
:lipatan terbuka -
zc
:tutup lipatan
Contoh
Berikut adalah contoh vimdiff
dalam xterm
membandingkan dua versi dari cups
file konfigurasi:
Anda dapat melihat bahwa bagian panjang dari garis identik telah diciutkan. Mereka dapat dibuka lagi dengan zo
.
Skema warna akan bervariasi tergantung pada pengaturan opsi Anda. Dalam contoh di atas, ketika garis muncul di satu file tetapi tidak muncul di file lain, garis tersebut diberi latar belakang biru gelap. Di file lain, garis yang hilang ditunjukkan dengan garis putus-putus. Saat garis muncul di kedua file tetapi memiliki beberapa perbedaan, bagian garis yang tidak diubah memiliki latar belakang merah muda dan bagian yang diubah memiliki latar belakang merah.
Apakah salah satu file diedit di mesin Windows?
Terminasi jalur standar di Windows adalah CRLF, di mana di Linux hanya LF (dan di Mac dulu CR, tapi saya menduga itu berubah sejak OS X).
Coba wc -l
pada file dan lihat berapa baris, lalu lihat apakah perbedaan ukurannya sama dengan jumlah baris (baris terakhir tidak boleh diakhiri dalam satu file).