Как мне различить вывод нескольких команд? vimdiff
может поддерживать до четырех файлов, но diff
само по себе, кажется, поддерживает ровно два файла.
Возможно ли это напрямую с каким-либо вариантом diff
или мне нужно сохранить выходные данные всех команд во временные файлы, выбрать одну и разослать с ней остаток?
Контекст:
Я должен проверить вывод определенной команды на нескольких серверах и посмотреть, все ли они согласны. На данный момент просто отчет о том, что обнаружены какие-либо различия, кажется хорошим, но если это возможно, я бы хотел сказать: X% серверов согласны друг с другом, Y% друг с другом; или этот сервер Z является нечетным.
У меня есть четырехсторонняя многоадресная настройка LDAP, и я хочу убедиться, что ContextCSN
значения для всех четырех согласуются друг с другом.
Итак, теперь я делаю:
#! /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
И проверьте код ошибки скрипта. Есть ли лучшие инструменты для этого?
Любые инструменты, которые можно использовать в Ubuntu 14.04, приветствуются.
Этот
fdupes
инструмент может быть вам полезен здесь (должен быть в репозиториях). Если у вас есть большое количество файлов для сравнения, вы можете использовать его, чтобы уменьшить объем работы, которую вы должны выполнить, указав, какие из них уже идентичны. Как отмечено ниже, он работает только с аргументами каталога. Если у вас есть все файлы для сравнения в одном каталоге, вы можете сделать что-то вроде:Для идентификации файлов, которые одинаковы. Или:
Для идентификации файлов, которые являются уникальными.
Команда
diff3
также может быть полезной.источник
fdupes
Кажется, нужен каталог в качестве аргумента (легко обходится), но да, количество возвращаемых файловfdupes
очень полезно.Если вы только хотите увидеть, согласуются ли файлы, тогда вам не нужен diff. Просто используйте
sha1sum
или что-то в этом роде.например:
Это даст вам разделенный пробелами список серверов sha1sum. Серверы с одинаковым значением sha1sum имеют одинаковый вывод:
Вы можете выполнить дальнейшую обработку, чтобы получить список подходящих серверов, например:
который дает вывод, такой как:
источник