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 interpreted 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 toggles. (‘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>