Patching multiple files with same text

Robert Barrell root at rdb1.UUCP
Wed Mar 28 22:50:57 AEST 1990


     In a case where several files may have a given group of text lines, and
that group of lines must be replaced in all files by another group of lines,
is there any way to use patch, sed, or awk (sorry, I don't have perl) to perform
such a patch?  The problems I am encountering are:

1) The original text contains multiple lines, and ALL lines of the original must
   be replaced by the patch.
2) The patch is not the same length as the original text.
3) The original text is not always in the same relative position within each
   file, so "diff -e" scripts will only work for one file, due to the specific
   line numbers, and context diffs have the same problem because of the actual
   context (which may be different in all files).
4) Normal "diff" output, run through "patch" DOES work, but isn't specific
   enough about matching the ENTIRE original text, so if a similar group of
   lines appears in a file which doesn't contain the exact original, or if
   such appears BEFORE the original, a false patch can occur.

     I see, in the manuals, that sed has an "N" command for, supposedly, dealing
with multiple lines, but I haven't quite figured-out how to use it yet (all the
examples in the manuals are for single lines, and the description of "N" is
rather terse.

-- 
Robert Barrell      | ...!cbmvax!gvlv2!lock60!rdb1!root | Cody Computer Services
Milo's Meadow BBS   |        root at rdb1.canal.org        | 55 East High Street
login: nuucp or bbs |-----------------------------------| Pottstown, PA   19464
(215) 323-0497      | Business and Police Dept Software | (215) 326-7476



More information about the Comp.unix.questions mailing list