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.