Jak różnicować dane wyjściowe wielu poleceń? vimdiff
może obsługiwać do czterech plików, ale diff
sam wydaje się obsługiwać dokładnie dwa pliki.
Czy jest to możliwe bezpośrednio z jakimś wariantem diff
, czy też muszę zapisać dane wyjściowe wszystkich poleceń w plikach tymczasowych, wybrać jeden i różnicować z nim resztę?
Kontekst:
Muszę sprawdzić dane wyjściowe określonego polecenia na wielu serwerach i sprawdzić, czy wszystkie się zgadzają. W tej chwili zgłaszanie, czy jakieś różnice zostaną znalezione, wydaje się dobre, ale jeśli to możliwe, chciałbym móc powiedzieć: X% serwerów zgadza się ze sobą, Y% ze sobą; lub ten serwer Z jest dziwny.
Mam czterostronną konfigurację LDAP z czterema ścieżkami i chcę sprawdzić, czy ContextCSN
wartości dla wszystkich czterech są ze sobą zgodne.
Więc teraz robię:
#! /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
I sprawdź kod błędu skryptu. Czy są na to lepsze narzędzia?
Wszelkie narzędzia, których można używać w systemie Ubuntu 14.04 welcome.