Как я делаю N-путь разность?

Я боюсь не полностью - события, кажется, активируются на нажатии клавиши (в противоположность ключевому выпуску), следовательно лучшее, которого Вы, вероятно, сможете достигнуть, Super_L открытие меню, и если Вы не отпускаете ключа и нажатия r быть интерпретируемым как Super+r, который открыл бы Ваш терминал (по крайней мере, как это работает на меня).

14
24.12.2014, 15:56
3 ответа

Если вы хотите только увидеть, согласны ли файлы, то вам действительно не нужно diff. Просто используйте Sha1sum или что-то в этом роде.

Например:

#!/bin/sh
command="foo;bar|baz"
for server in server1 server2 server3 server4 server5 server6: do
    echo $server $(ssh $server "$command" |sha1sum)
done | sort -k2 

Это даст вам список Space Spires Server, SHA1Sum пары. Серверы с одним и тем же SHA1Sum имеют одинаковый выход:

server1 55ca6286e3e4f4fba5d0448333fa99fc5a404a73 *-
server3 55ca6286e3e4f4fba5d0448333fa99fc5a404a73 *-
server6 55ca6286e3e4f4fba5d0448333fa99fc5a404a73 *-
server2 d961c3de6d6c99429806ae3d6d03f316a1168ac6 *-
server4 d961c3de6d6c99429806ae3d6d03f316a1168ac6 *-
server5 dcdc24e139db869eb059c9355c89c382de15b987 *-

Вы можете сделать дальнейшую обработку, чтобы получить список сопоставленных серверов, например:

#!/bin/sh
command="foo;bar|baz"
for server in server1 server2 server3 server4 server5: do
    echo $server $(ssh $server "$command" |sha1sum)
done | sort -k2 | while read srv sum; do
    if [ "$prevsum" == "$sum" ]; then 
        echo -n " "
    else
        echo
    fi
    echo -n $srv
    prevsum=$sum
done

, который дает вывод, такой как:

server1 server3 server6
server2 server4
server5
5
27.01.2020, 19:51

Инструмент для этого - это диффузное . Он также обычно доступен от REPOS (по крайней мере, в Debian и Arch, где я проверил). Работает так, как вы ожидаете его:

  diffuse file1 file2 file3 file4

и так далее.

11
27.01.2020, 19:51

Инструмент Инструмент может быть некоторое использование для вас здесь (должно быть в репозиториях). Если у вас есть большое количество файлов для сравнения, вы можете использовать его для уменьшения работы, которую вы должны сделать, идентифицируя, какие из них уже идентичны. Как отмечалось ниже, он работает только с аргументами каталога. Если у вас есть все файлы для разных в одном каталоге, вы можете сделать что-то вроде:

fdupes .

для определения файлов, которые одинаковы. Или:

comm -13 <(fdupes . |sort -u) <(find . -maxdepth 1 | sort)

для определения файлов, которые являются уникальными.

Команда дифференциров ​​ также может быть полезной.

6
27.01.2020, 19:51

Теги

Похожие вопросы