已知这些文件包含若干便于人类阅读的信息头(例如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 <delphij@FreeBSD.org> [...] 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'