хм…
lxml.de/lxmlhtml.html
from lxml import html
import os
with open("../results.txt", "w") as f:
for fname in os.listdir('./'):
tree=html.parse(fname)
body_content=tree.xpath("//body")[0]
all_body_text=body_content.text_content() #только текст из всех descendant-or-self
body_content_with_markup=body_content.tostring(body_content) #текст и разметка descendant-or-self
result=some_processing("какой-либо из предыдущих результатов") # какие-то доп. замены и манипуляции
f.write(result) # запихиваем все в один файл
Но если более конкретно скажете что нужно извлечь и какие трансформации нужно проделать — напишу более подробно. Может и на XSLT будет проще, если автозамены касаются в основном тегов.
Если на баше — то есть xmllint, который позволяет в том числе и xpath запросы выполнять
xmllint --html --xpath //body
Регулярки ни в коем случае не используйте ибо
stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454