Solución 1:
Prefiero no tocar /etc/hosts en términos de análisis y tal. Simplemente crearía un directorio llamado /etc/hosts.d/ e inventa un script que tome:
- ip
- nombre
- alias
crea un (1) archivo con una (1) línea. El nombre del archivo será <ip>.host y luego cat /etc/hosts.d/*host > /tmp/hosts.new && mv /tmp/hosts.new /etc/hosts . Tal vez agregue un incron evento que mira el /etc/hosts.d/ directorio y regenera /etc/hosts cada vez que suceda algo, de esa manera también te desharás de las entradas antiguas.
Solución 2:
Echa un vistazo a Augas. Tiene un analizador/serializador listo para usar para el archivo de hosts (que incluso está en su guía turística rápida) y viene con una herramienta simple para hacer cambios (augtool).