I’m in the process of moving my note-taking workflow to Obsidian.

The problem is that Obsidian expects a new Markdown file to be created for each day, and I’ve been collecting a year’s worth of notes in a single file for the last ten years or so.

Wanted to highlight two tools that came in clutch for this otherwise complex process:


A simply python script that splits .md files by a given heading level. This gave me a different file for every day.

Example command:

python3 mdsplit.py huge-notes-file.md --max-level 2


Simple but extremely powerful renaming tool that takes an input and an output pattern, so you can reorder parts of the file name, add prefix/sufix/content, use regex, etc.

Example command:

zmv '(*)-(Sep)-(*)(.*)' '$3-09-$1$4'

And that’s it!