Using regex to tell csplit where to split the file

Philip Meissner picture Philip Meissner · Aug 21, 2013 · Viewed 20.9k times · Source

I have a large text file with content set up like this:

---
title: Lorim Ipsum Dolar
---
Lorim ipsum content
---
title: Excelvier whatever 
---
Lorim ipsum content goes here.

I'm trying to split up this file into individual files using csplit.

The individual files would have content formatted like this:

---
title: Lorim Ipsum Dolar
---
Lorim ipsum content

I was hoping to be able to regex the ---, newline & title like so ---\ntitle

But I'm not able to select it with…

csplit -k products.txt '/---[^\n]title/' {99}

I've tried lots of variations to no avail. I keeping getting "no match".

Answer

inthenite picture inthenite · Aug 21, 2013

You could use a regular expression that matches until the end of the line ($)

What do you think about:

csplit -k products.txt '/^title:/' {99}