【发布时间】:2020-10-15 17:10:49
【问题描述】:
我有一个这样的 SSL 证书链
-----BEGIN CERTIFICATE-----
MIICPjCCAeSgAwIBAgIRALMMpKnhRM2C7mnKI/rl8ggwCgYIKoZIzj0EAwIwgY4x
CERT1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDIjCCAsegAwIBAgIOAMjnPM1wShDmOWUELuIwCgYIKoZIzj0EAwIwgagxCzAJ
CERT2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDIDCCAsWgAwIBAgIOAMjnPL8JUbVSmpMadWUwCgYIKoZIzj0EAwIwbDELMAkG
CERT3
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDBjCCAqygAwIBAgIFFRCCEwYwCgYIKoZIzj0EAwIwgZQxFDASBgNVBAoMC0Ft
CERT4
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDNjCCAtugAwIBAgIJAKpBxYNyH8biMAoGCCqGSM49BAMCMIGUMRQwEgYDVQQK
CERT5
-----END CERTIFICATE-----
我需要从中删除最后一个证书。
在 MacOS/BSD 命令 split 有标志 -p 按模式分割,我使用它:
cat cert | split -p "-----BEGIN CERTIFICATE-----"
cat xa{a,b,c,d}
我相信在 Linux 上也有一条命令可以在一行中执行此操作,但在 Ubuntu 上,命令 split 无法按模式拆分。
我需要使用标准的 linux 命令来完成这项工作,例如我标记的那些。
【问题讨论】: