$ join -j 2 -o 1.1,2.1 file file | awk '!seen[$1,$2]++ && !seen[$2,$1]++'
a b
a c
a d
a e
b c
b d
b e
c d
c e
d e
Это предполагает, что ни одна строка во входном файле не содержит пробелов. Также предполагается, что файл отсортирован .
Команда join
создает полное перекрестное произведение строк в файле. Он делает это путем объединения файла с самим собой в несуществующем -поле. Нестандартный -j 2
не -может быть заменен на -1 2 -2 2
(, но не на -j2
, если только вы не используете GNUjoin
).
Команда awk
считывает результат и выводит только те результаты, которые являются парами, которые еще не были просмотрены.
На самом деле этот вопрос не относится к Unix/Linux, поэтому он может быть перенесен в Cryptography или Computer Security StackExchange или в SuperUser.SE.
Вы можете использовать gpg2 --import keyfile.asc
для импорта ключа в GPG. Это позволит вам использовать команды git verify-commit
и git verify-tag
для проверки подписей различных элементов в клонированном репозитории git. Но без дополнительной проверки самого ключа это защищает только от случайного повреждения данных, а не от злонамеренных действий.
Отпечаток относится только к самому ключу, а не к чему-либо в репозитории git. Если отпечаток предоставляется вместе с открытым ключом, то он будет полезен только для проверки того, что сам ключ не был случайно поврежден при передаче. (Если ключ был изменен злонамеренно, отпечаток пальца, предоставленный вместе с ним, вероятно, также будет изменен.)
Вы можете использовать gpg2 --show-keys keyfile.asc
, чтобы увидеть, был ли ключ подписан другими; если это,ключи могут быть автоматически проверены GPG, если у вас есть открытый ключ GPG подписавшего и , который сообщил GPG, что вы доверяете подписывающему лицу быть осторожным при подписании чужих ключей. Это можно повторять, чтобы сформировать «цепочку доверия» через столько людей, сколько вы готовы принять.
В противном случае вам придется связаться с автором проекта и получить от него отпечаток каким-либо способом, на который вы можете положиться. После проверки отпечатка с помощью gpg2 --fingerprint <key ID>
и подтверждения того, что он соответствует тому, что говорит владелец, вы можете быть уверены, что ключ на самом деле принадлежит автору проекта.