====== 用 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'