====== 用 Shell 脚本取出 FreeBSD.org 的 PGP 公钥列表中的公钥 ======
===== 问题 =====
已知这些文件包含若干便于人类阅读的信息头(例如Key fingerprint),以及一个标准的 PGP Public Key block,如何取出那个标准的 PGP Public Key block?
===== 解 =====
已知此文件的大致格式如下:
// sh addkey.sh delphij 40797F7C95F4834F 1103E2EB9759E4C5 ;
[.literal-block-margin]
....
pub rsa4096/40797F7C95F4834F 2018-09-07 [SC] [expires: 2023-10-31]
Key fingerprint = 71E3 60E4 D10C 6489 22F3 49D0 4079 7F7C 95F4 834F
uid Xin LI
[...]
sub cv25519/CB7DF69E70E064C1 2023-09-05 [E]
....
[.literal-block-margin]
....
-----BEGIN PGP PUBLIC KEY BLOCK-----
[... 公钥 ...]
-----END PGP PUBLIC KEY BLOCK-----
用 sed 可破:
sed -ne '/-----BEGIN PGP PUBLIC KEY BLOCK-----/,/-----END PGP PUBLIC KEY BLOCK-----/p'