Over the years, I’ve downloaded a lot of old emails to my laptop, which I saved as .eml files and then converted to .docx, .odt, and .txt files (mostly the last two).
The unfortunate habit of almost everyone (including myself, but no longer!) of quoting the original message as part of an email exchange has left me with text file(s) full of repeated sentences and paragraphs. What I’ve tended to do is to dump all the text from a one on one correspondence into a single file (“Dad-Erinaceus Complete Correspondence.odt,” for example) and then try cleaning it up and re-ordering the messages by date.
Apart from the emails, I have I guess what you’d call a “journal” which is a very long .odt file that runs to about 300 pages or so. Much of this has the same sentences and paragraphs over and over again, but sometimes with slight variations that I would like to keep. So far, in either .odt or .txt files, I’ve started by searching for the first sentence, deleting subsequent appearances of it, and then going on to the next sentence, and so forth. Very time consuming! Is there a faster (and safe) way to do this?
There is quite possibly a very simple solution to this that I haven’t thought of, but I’d be much obliged for any suggestions.


I doubt you’ll find anything for this bespoke purpose built as a utility online, so if you want it you’ll need to make it (or I guess hire someone).
Python is fairly approachable to learn, the 2nd best time to plant a tree is today. Personally, I’d recommend installing Anaconda and using a Jupyter Notebook. For this process, you’d need to learn about:
“pip” to install any libraries/packages you need.
Importing packages
Working with strings
Getting a list of all files (maybe only those of certain types) in a given directory.
For loops
some way to read each file type (pandas can handle txt, not sure about the others but you should be able to literally just Google “Python import <filetype>” to find a package. Import them as strings and concatenate a huge list of them in a for loop.
Pandas dataframes, Parsing strings into new columns, including into distinct lists of strings. The complexity here varies a lot based on what you specifically want to get out of the process.
Exporting dataframe rows to files (better imho if you did it as tabs in a workbook, but it is trickier) in a for loop.
Don’t overwrite objects as you go and keep different logical chunks in their own cells. That’ll make it easier to troubleshoot. Just Google any errors you don’t immediately understand, you’ll find lots of advice online.
Don’t have whatever you make delete any of your original files.
Depending on your feelings about AI, you could probably get one to make something that’ll work after a few tries and troubleshooting by giving it error messages, but aside from the ethical problems, you’d never really know if it got it right, even if it seemed to work, so I would recommend against it.