QSUBST(1)               NetBSD General Commands Manual               QSUBST(1)

NAME
     qsubst -- query-replace strings in files

SYNOPSIS
     qsubst str1 str2 [flags] file [file [...]]

DESCRIPTION
     qsubst reads its options (see below) to get a list of files.  For each
     file on this list, it then replaces str1 with str2 wherever possible in
     that file, depending on user input (see below).  The result is written
     back onto the original file.

     For each potential substitution found, the user is prompted with a few
     lines before and after the line containing the string to be substituted.
     The string itself is displayed using the terminal's standout mode, if
     any.  Then one character is read from the terminal.  This is then inter-
     preted as follows (this is designed to be like Emacs' query-replace-
     string):
           space  Replace this occurrence and go on to the next one.
           .      Replace this occurrence and don't change any more in this
                  file (i.e., go on to the next file).
           ,      Tentatively replace this occurrence.  The lines as they
                  would look if the substitution were made are printed out.
                  Then another character is read and it is used to decide the
                  result as if the tentative replacement had not happened.
           n      Don't change this one; just go on to the next one.
           ^G     Don't change this one or any others in this file, but
                  instead simply go on to the next file.
           !      Change the rest in this file without asking, then go on to
                  the next file (at which point qsubst will start asking
                  again).
           ?      Print out the current filename and ask again.

     The first two arguments to qsubst are always the string to replace and
     the string to replace it with.  The options are as follows:
           -w           The search string is considered as a C symbol; it must
                        be bounded by non-symbol characters.  This option tog-
                        gles.  (`w' for `word'.)
           -!
           -go
           -noask       Enter ! mode automatically at the beginning of each
                        file.
           -nogo
           -ask         Negate -go, that is, ask as usual.
           -cN          (Where N is a number.)  Give N lines of context above
                        and below the line with the match when prompting the
                        user.
           -CAN         (Where N is a number.)  Give N lines of context above
                        the line with the match when prompting the user.
           -CBN         (Where N is a number.)  Give N lines of context below
                        the line with the match when prompting the user.
           -f filename  The filename argument is one of the files qsubst
                        should perform substitutions in.
           -F filename  qsubst reads filename to get the names of files to
                        perform substitutions in.  The names should appear one
                        to a line.

     The default amount of context is -c2, that is, two lines above and two
     lines below the line with the match.

     Arguments not beginning with a - sign in the options field are implicitly
     preceded by -f.  Thus, -f is really needed only when the file name begins
     with a - sign.

     qsubst reads its options in order and processes files as it gets them.
     This means, for example, that a -go will affect only files named after
     the -go.

     The most context you can get is ten lines each, above and below.

     str1 is limited to 512 characters; there is no limit on the size of str2.
     Neither one may contain a NUL.

     NULs in the file may cause qsubst to make various mistakes.

     If any other program modifies the file while qsubst is running, all bets
     are off.

AUTHORS
     der Mouse <mouse@rodents.montreal.qc.ca>

NetBSD 5.0_STABLE              September 4, 1999             NetBSD 5.0_STABLE
