Je vais essayer perl (pour m'instruire)
Sinon, pour répondre à francesco, autrefois, il m'arrivait de faire des choses sales comme écrire dans un autre fichier, et faire un mv pour rattraper le coup... mais... une fois dans mon entreprise, on n'avait plus d'espace libre sur le disque d'un serveur, qui était rempli de fichiers de log. Les scripts de nettoyage ne marchaient plus (car ils utilisaient tail vers un fichier temporaire, puis mv)... c'est comme ça, par obligation, qu'on en est venu à ed pour tronquer les fichiers de log.
On s'est rendu compte que ed est ultra-performant, car d'abord il charge le fichier d'un coup en RAM, ensuite il fait toutes les modifs en RAM, et finalement il sauvegarde tout d'un coup sur le disque. Donc, si le fichier de départ est le même que le fichier d'arrivée, qu'il est suffisamment petit pour tenir en RAM, on a tout intérêt à utiliser ed.