The utility 'fgres' has been a part of my Unix life since the early months of 1995, when I installed Slackware 95 for the first time (from a CD I got in the back of a book I bought at a local bookstore). Through the next 21 years, I've used fgres almost every day in my server administration duties and it is probably one of the least known utilities out there. I have no idea where I found it first but the author, one Wolfgang Stumvoll from Germany released it to the world in 1994. I made a VERY small modification to get it to compile on modern Linux (and FreeBSD). Click here to download the source for Fgres, version 1.5 (just extract it, run 'make' in the source directory and copy the binary where ever you want it).

-- Mitchell Vincent
-- K Software

	fgres string replace utility for binary and text files/pipes


Copyright (c) 1994, W. Stumvoll, Germany

Some legal stuff:

Use this software package at your own  risk.  The  programmer  cannot  be  held
liable  for  any  incurred  damages,  directly or indirectly due to the use  or
inability to use this software.

You are encouraged to distribute this package freely. This package  is  however
not to be sold (minor transfer costs excepted) or included in any  commercially
sold software package (if you want to  do  this  anyway,  contact  me  (address
below), and we'll work something out).

If you distribute it, please leave the package intact. You are allowed to  take
parts from this distribution and distribute these separately  as  long  as  you
retain the copyright messages. If you redistribute any part  of this package in
a modified form, be sure to  mark  the  parts  you  changed.  If  you have some
important  changes  that  might be useful to the rest of the world, contact  me
instead.  (Sadly, this address hasn't worked in years.)

Submitted-By: (Wolfgang Stumvoll) (again, this is an inactive email address)
Archive-Name: fgres/part01
Environment: ANSI-C, UNIX

fgres' ( Fast GREp and Substitute ) primary function is to substitute or delete
character patterns. It can operate on binary and text files or in a pipe.

It is ideally suited for  quick  and  dirty  replacements  in  multiple  files.
Especially for this  purpose, fgres supports in situ replacements, which do not
need any temporary files.

For example:
   If you want to replace all variables `foo' by `foobar' in all  your  program
   sources, a mere:

      fgres foo foobar *.[ch]

   will do.

The more demanding user can create fgres command files. They  can  contain  any
number of substitution patterns which will  be  simultaneously searched for and
can be collected in named groups.  These  groups can be used to generate finite