Saya punya dua file snmpd.conf, satu di server yang berfungsi, dan satu yang tidak. Bagaimana saya bisa membedakan kedua file konfigurasi sambil menghapus komentar dan baris baru yang tidak relevan?
linux
configuration
diff
jldugger
sumber
sumber
level
! =)Jawaban:
Untuk menghindari garis-garis kosong, dan garis-garis yang tidak mengandung apa-apa selain spasi, di samping garis identik yang memiliki satu perbedaan tambahan ruang-ruang utama ...
Pada titik ini, saya mungkin akan memasukkannya ke dalam skrip dan menulis sesuatu seperti saran asli yang sedikit lebih mudah dibaca.
sumber
Jika Anda agak nyaman dengan vim , saya akan sangat menyarankan Anda untuk menggunakan vimdiff :
Ini akan membuka sesi vim dengan dua panel, dengan satu file di setiap sisi. Sorotan dan warna akan menunjukkan perbedaan antara file, dan semua bagian yang identik akan disembunyikan (dilipat, tetapi dapat diperluas).
Kemudian, jika Anda ingin secara selektif menggabungkan perbedaan dari satu file ke yang lain, Anda dapat menggunakan perintah berikut:
(Pertimbangkan "file saat ini" sebagai tempat kursor berada)
^ W ^ W untuk mengubah fokus dari jendela satu file ke jendela file lainnya
] c untuk maju ke blok berikutnya dengan perbedaan
[c untuk membalikkan pencarian untuk blok sebelumnya dengan perbedaan
melakukan ( d IFF o btain) untuk membawa perubahan dari file lain ke file saat ini
dp ( d iff p ut) untuk mengirim perubahan dari file saat ini ke file lainnya
Catatan: Kedua lakukan dan dp pekerjaan jika Anda berada di blok atau hanya satu baris di bawah blok.
u untuk u ndo
z untuk membuka / menyembunyikan teks
zc untuk melipat kembali / menyembunyikan kembali teks
zr akan membuka kedua file sepenuhnya (gunakan : bantu lipat untuk lebih banyak tentang melipat)
: diffupdate akan memindai ulang file untuk melihat perubahan
Saat Anda mulai memindahkan teks yang diubah atau membawa perubahan, bagian file yang sekarang identik akan secara otomatis terlipat juga.
Setelah selesai, Anda dapat keluar dan menulis kedua file dengan : xa!
Anda juga dapat menulis, berhenti, membuang perubahan, dll., Satu panel pada satu waktu seperti yang biasa Anda lakukan dengan vim.
Anda dapat menggunakan semua perintah vim umum untuk mengedit file sesuka hati; Saya hanya menggambarkan perintah yang paling umum dan berguna yang mungkin Anda gunakan dalam sesi vimdiff (sebagai lawan dari vim generik).
sumber
Beyond Compare adalah alat pamungkas untuk ini!
Tautan: http://www.scootersoftware.com/
Tersedia untuk Windows dan Linux.
Jeff menulis artikel ikhtisar yang baik tentang alat tersebut beberapa waktu lalu:
http://www.codinghorror.com/blog/archives/000454.html
sumber
Memperluas pada one-liner nima, Anda bisa melakukannya sebagai fungsi shell dan meletakkannya di .bashrc Anda
menjadi (menggunakan -u karena saya suka uns diff)
Jika Anda menyukai pemirsa GUI diff, berbaur itu bagus, dan memahami dirs / file yang dikendalikan revisi.
sumber
Setelah membersihkan komentar, saya akan menyarankan menggunakan KDiff3, itu alat diff / merge yang cukup bagus dan Anda tidak perlu vim fu untuk menggunakannya :)
sumber
Mungkin ada cara yang lebih elegan untuk melakukannya, tetapi secara pragmatis (dan cepat):
sumber
Jika Anda menggunakan shell mirip bash, Anda dapat mencoba ini:
Kemudian panggil seperti ini:
Anda juga dapat mengubah
diff
kevimdiff
ataugvimdiff
yang kedua datang denganvim
.sumber
Memperluas solusi Xerxes, Anda dapat menggunakan alat yang lebih canggih daripada
diff
untuk menampilkan perbedaan.wdiff
wdiff
kadang-kadang bisa "terlalu pintar", tetapi saya merasa sering berguna untuk melihat perbedaan antara file konfigurasi dengan cepat. Script ini dapat digunakan untuk output dengan warna:Di Ubuntu dan sistem berbasis Debian lainnya, sesaat
apt-get install wdiff
sebelum menggunakan skrip ini.Meld
Meld adalah alternatif GUI yang bagus, tetapi fitur "Penyaringan teks" memiliki beberapa masalah. Alih-alih menggunakan pemfilteran teks, saya menghapus komentar sama sekali sebelum menampilkan hasilnya di Meld. Kekurangannya adalah kehilangan kemampuan untuk mengedit file sambil membandingkannya. Berikut ini skrip sederhana untuk menggunakan Meld:
sumber
Kadang-kadang, beberapa baris umum tambahan dapat dihapus dengan menyortir file sebelum diff, jadi saya akan menambahkan apa yang sudah ditulis sebagai berikut:
ini tentu saja masuk akal untuk file di mana urutan baris tidak mempengaruhi kontennya (jadi waspadalah).
sumber
Ini sama dengan nima's one liner, tetapi akan menyaring garis kosong juga seperti yang diminta seseorang.
(Saya juga akan menginstal colordiff jika mungkin dan menggunakannya sebagai pengganti diff normal)
sumber
Saya menggunakan WinMerge http://winmerge.org untuk meng-diff file, dengan syarat saya harus menariknya ke mesin saya, tetapi itu berfungsi untuk.
sumber