repl performs 'gather/scatter' editing. In 'search mode' it collects lines that you wish to change in multiple files into a single 'edit-file'. You then make the changes to the lines in the edit-file and then use the tool in 'replace mode' to apply the edits to all of the source files in one go. You can change, delete, insert or append lines as necessary. For full details see the built-in help (accessible with the '--help' option).
repl was inspired by a pair of programs, rep and rpl that I first encounted in the 1980's and written, I believe, by someone at IST (Imperial Software Technology). It may be an old concept, but it's still useful!
Copyright (c) 1999, 2002, 2003, 2012 by Neil Winton. All rights reserved.
The author hereby grants permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, licence, or royalty fee is required for any of the authorized uses.
IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
I wrote the first version of this script more than 10 years ago. I've made some improvements over the years, but if I was writing it today it would be rather different stylistically!