Saya memiliki dua file log dengan ribuan baris. Setelah pra-pemrosesan, hanya beberapa baris yang berbeda. Garis yang tersisa ini adalah perbedaan nyata, atau kelompok garis yang dikocok.
Perbedaan unified memungkinkan saya untuk melihat perbedaan terperinci, tetapi itu membuat perbandingan manual dengan bola mata sulit. Perbedaan berdampingan tampaknya lebih berguna untuk perbandingan, tetapi juga menambahkan ribuan garis yang tidak berubah. Apakah ada cara untuk mendapatkan keuntungan dari kedua dunia?
Catatan, file-file log ini dihasilkan oleh xscope
yang merupakan program yang memonitor data protokol Xorg. Saya mencari alat untuk keperluan umum yang dapat diterapkan pada situasi yang mirip dengan di atas, bukan alat analisis log akses server web khusus misalnya.
Dua contoh file log tersedia di http://lekensteyn.nl/files/qemu-sdl-debug/ ( log13
dan log14
). Perintah pra-prosesor dapat ditemukan dalam xscope-filter
file yang menghilangkan cap waktu dan detail kecil lainnya.
diff
punya--suppress-common-lines
pilihan? pastebin.com/KZrVCNFRvimdiff
(dari paket vim ) akan melayani kebutuhan Anda dengan lebih baik: tampilan paralel, berwarna, garis-garis umum dilipat. Nomor baris dapat dihidupkan dengan:set number
.Jawaban:
2 alat diff yang paling sering saya gunakan adalah berbaur dan sdiff .
berbaur
Meld adalah GUI tetapi melakukan pekerjaan besar dalam menunjukkan perbedaan antar file. Ini lebih diarahkan untuk pengembangan perangkat lunak dengan fitur-fitur seperti kemampuan untuk memindahkan perubahan dari satu sisi ke sisi lain untuk menggabungkan perubahan tetapi dapat digunakan hanya sebagai alat pemisah yang berdampingan.
sdiff
Saya telah menggunakan alat ini selama bertahun-tahun. Saya biasanya menjalankannya dengan sakelar berikut:
-b
Abaikan perubahan jumlah ruang putih.-W
Abaikan semua ruang putih.-B
Abaikan perubahan yang semua barisnya kosong.-s
Jangan tampilkan garis yang sama.Seringkali dengan file log Anda harus membuat lebar kolom lebih lebar, Anda dapat menggunakan
-w <num>
untuk membuat layar lebih lebar.alat lain yang saya gunakan mati-matian
diffc
Diffc adalah skrip python yang mewarnai keluaran unified diff.
vimdiff
Vimdiff mungkin sama baiknya jika tidak lebih baik dari berbaur dan dapat dijalankan dari terminal. Saya selalu lupa untuk menggunakannya yang, bagi saya, merupakan indikator yang baik bahwa saya menemukan alat ini sedikit sulit untuk digunakan sehari-hari. Tapi YMMV.
sumber
colordiff
dari colordiff.org untuk file sumber. Untuk pemahaman saya,sdiff
miripdiff -y
dengan tanpa perbedaan dalam output tetapi opsi yang sedikit berbeda. +1 untuk menunjukkan beberapa alternatif yang bagus untuk diff biasa.diff -y
. Penambahan peralihan itudiff
tampaknya telah terjadi di beberapa titik, atau saya tidak pernah menyadarinya. Selain itu, inilah tautan ke halaman sumber daya alat gnu diff . Barang bagus untuk menggunakan rangkaian alat ini.Saat ini saya menggunakan diff berdampingan dengan grep memfilter garis yang berbeda:
-W250
membuat output lebih luas sehingga saya bisa melihat lebih banyak data.expand
diperlukan untuk mengonversi tab menjadi spasi-C3
menambahkan 3 baris konteks ke output grep.^.{123}
cocok dengan setengah dari data sebelum spidol berdampingan.colordiff
membuat output lebih cantik untuk diikutiless -rS
memungkinkan warna ANSI ditafsirkan (-r
) dan mencegah garis terbungkus (-S
).Ini adalah retasan, alternatif dipersilakan.
sumber
grep
regex terlalu lambat. Jugadiff
memiliki-t
opsi untuk membuka tab.Belum ada yang menyebutkan icdiff ? Itu bagus! Pic berbicara untuk dirinya sendiri:
sumber
Perintah "sdiff" linux menunjukkan perbedaan berdampingan, secara default termasuk semua baris, tetapi Anda dapat menggunakan berbagai opsi untuk hanya menunjukkan perbedaan:
sdiff -tWBs -w $COLUMNS config.xml config.xml.original
dimana
-t: menerjemahkan tab ke spasi
-W: abaikan perbedaan spasi putih
-B: abaikan garis kosong
-s: abaikan garis yang sama
-w $ COLUMNS: gunakan layar penuh
Baris yang ditampilkan akan dibagi oleh |, <, atau> - lihat dokumentasi, atau coba saja.
sumber