Os IDE gerais mais comuns têm a função de (regexp) pesquisar e substituir em arquivos (dentro de uma estrutura de diretórios). Mesmo pequenos editores tendem a oferecer esse recurso; no Windows, o NotePad ++ é um bom exemplo.
Para o OSX, onde você tem as ferramentas comuns do shell, pode ser uma tarefa típica para o sed, que é um editor em si ... um editor muito especial.
Contanto que todos os arquivos estejam no mesmo diretório, permanecendo nesse diretório, você pode usar isto para deletar as partes desnecessárias e colocar a saída em arquivos terminados em .htm que (após alguma verificação) você pode renomear para .html .
$ cat just-an-html.html
<tag> txt_a Content1_to_delete txt_b </tag>
<tag> txt_a Content2_to_delete txt_b </tag>
<tag> txt_a Content3_to_delete txt_b </tag>
$ for HTML in *.html; do sed -e 's@\(tag> txt_a\) .*\(txt_b </tag\)@ @g' $HTML > $(basename $HTML html)htm ; done
$ ls *.htm
just-an-html.htm
$ cat just-an-html.htm
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>
Também é possível excluir a substring diretamente dentro dos arquivos (-i: inplace), mas eu não recomendaria isso, a menos que você tenha backups atualizados.
$ cat just-an-html.html
<tag> txt_a Content1_to_delete txt_b </tag>
<tag> txt_a Content2_to_delete txt_b </tag>
<tag> txt_a Content3_to_delete txt_b </tag>
$ for HTML in *.html; do sed -i -e 's@\(tag> txt_a\) .*\(txt_b </tag\)@ @g' $HTML ; done
$ cat just-an-html.html
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>