The best thing to do is to use a utility that you write yourself.
However, as @ronjonp mentioned, there is a very comprehensive routine called BreakAll that contains many options for solving the problem. I think it is worth exploring and may help you too.
The link is to the original source, which is the only updated one, but requires free registration. It is worth it.
https://www.theswamp.org/index.php?topic=10370.0
Here's the perex:
c:BreakAll - Break all objects selected
c:BreakwObjects - Break many objects with a single object
c:BreakObject - Break a single object with many objects
c:BreakWith - Break selected objects with other selected objects
c:BreakTouching - Break objects touching the single Break object
c:BreakSelected - Break selected objects with any objects that touch it
c:MyBreak - Dialog with buttons to run three of the routines
c:BreakRemove - Break selected object with any objects that touch it & remove
every other new segment, start with selected object