Bagaimana cara membedakan output dari banyak perintah? vimdiff
dapat mendukung hingga empat file, tetapi diff
itu sendiri tampaknya mendukung tepat dua file.
Apakah mungkin secara langsung dengan beberapa varian diff
, atau apakah saya harus menyimpan output dari semua perintah ke file sementara, memilih satu dan berbeda dengan yang lain?
Konteks:
Saya harus memeriksa output dari perintah tertentu pada beberapa server dan melihat apakah mereka semua setuju. Untuk saat ini, hanya melaporkan jika ada perbedaan yang ditemukan tampaknya baik, tetapi jika mungkin, saya ingin dapat mengatakan: X% server setuju satu sama lain, Y% satu sama lain; atau server Z adalah yang aneh.
Saya memiliki pengaturan multi-master LDAP empat arah, dan saya ingin memverifikasi bahwa ContextCSN
nilai - nilai untuk keempatnya sepakat satu sama lain.
Jadi sekarang saya lakukan:
#! /bin/bash
for i in {1..4}.ldap
do
ldapsearch -x -LLL -H ldap://$i -s base -b dc=example,dc=com contextCSN > $i.csn;
done
set -e
for i in {2..4}
do
diff -q 1.csn $i.csn
done
Dan periksa kode kesalahan skrip. Apakah ada alat yang lebih baik untuk ini?
Semua alat yang dapat digunakan pada Ubuntu 14.04 diterima.
The
fdupes
alat mungkin berguna bagi Anda di sini (harus dalam repositori). Jika Anda memiliki banyak file untuk dibandingkan, Anda dapat menggunakannya untuk mengurangi pekerjaan yang harus Anda lakukan dengan mengidentifikasi mana yang sudah identik. Seperti disebutkan di bawah, ini hanya berfungsi dengan argumen direktori. Jika Anda memiliki semua file yang berbeda di satu direktori, Anda dapat melakukan sesuatu seperti:Untuk mengidentifikasi file yang sama. Atau:
Untuk mengidentifikasi file yang unik.
The
diff3
perintah juga dapat berguna.sumber
fdupes
tampaknya membutuhkan direktori sebagai argumen (mudah dikerjakan), tetapi ya, jumlah file yang dikembalikanfdupes
sangat berguna.Jika Anda hanya ingin melihat apakah file-file tersebut setuju, maka Anda tidak benar-benar perlu diff. Gunakan saja
sha1sum
atau semacamnya.contohnya:
Ini akan memberi Anda daftar server yang terpisah ruang, sha1sum pasangan. Server dengan sha1sum yang sama memiliki output yang sama:
Anda dapat melakukan pemrosesan lebih lanjut untuk mendapatkan daftar server yang cocok, misalnya:
yang menghasilkan output seperti:
sumber