csplit

csplit - split a file into sections determined by context lines

introduction

Sometimes you have a file of certficiates that you want to split into component files.

The source file looks like this:

-----BEGIN CERTIFICATE-----
MIIGXzCCBeWgAwIBAgISBrIDKzxu2DUBARSOuwi/l1h/MAoGCCqGSM49BAMDMDIx
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGXzCCBeWgAwIBAgISBrIDKzxu2DUBARSOuwi/l1h/MAoGCCqGSM49BAMDMDIx
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGXzCCBeWgAwIBAgISBrIDKzxu2DUBARSOuwi/l1h/MAoGCCqGSM49BAMDMDIx
...
-----END CERTIFICATE-----

We can split on the first line: -----BEGIN CERTIFICATE-----. Every time we encounter that line, split into a new file.