Используйте emacs или xemacs. У этого есть прекрасная функция замены регулярного выражения. Вы даже можете использовать такие конструкции, как / 1 (или / 2 или / 3), чтобы получить обратно совпадающее выражение в вашей замене, которое было идентифицировано с () вокруг них. Для предотвращения столкновения vi-emacs: vi также будет иметь аналогичные конструкции. Я не уверен ни в каких современных редакторах, которые поддерживают эту функцию.
Совет: попробуйте сначала простую замену, это может быть немного неясно, так как вы можете добавить '\', чтобы избежать специальных конструкций RegExp ...