提取gpg指纹

Extract gpg fingerprint

我正在尝试从我的密钥环中的密钥中提取指纹,但我不知道如何解析输出。

运行

gpg --fingerprint 'Identifier'

产出

pub   rsa3072 2021-12-14 [SC]
      ABCD EFGH 1234 5678 ABCD  ABCD EFGH 1234 5678 ABCD
uid           [ unknown] First Last (Identifier) <First.Last@email.com>
sub   rsa3072 2021-12-14 [E]

我要提取短指纹或长指纹ABCD EFGH 1234 5678 ABCD ABCD EFGH 1234 5678 ABCD

在调用中添加 --with-colons 最终会打印多个指纹

...
fpr:::::::::ABCDEFGH12345678ABCDABCDEFGH12345678ABCD:
...
fpr:::::::::1234123412341234123412341234123412341234:

为 public 和密钥环中的密钥提取指纹的最佳方法是什么?

gpg --version
gpg (GnuPG) 2.2.27

使用sed

$ gpg --fingerprint | sed -n '/^\s/s/\s*//p'
ABCD EFGH 1234 5678 ABCD  ABCD EFGH 1234 5678 ABCD

-n - 静音输出

/^\s/ - 匹配以 space

开头的行

s/\s*//p - 删除前导 space。打印.