Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

PATTERNS

2.0;chpat (change_pattern), revision 2.0, 81/07/01
CHPAT (CHANGE_PATTERN) -- Replace pattern in text file.
usage:  CHPAT [-A|-X] [-L] [-O] [-OUT [pathname]] [pathname... -P] [from_pattern
                                        | [pat...] from_pattern to_expr]


FORMAT

  CHPAT  [options]  [pathname  ...  -P]  [from_pattern  | pat ...]  from_pattern
  [to_expression]


  CHPAT copies every line from its input files to  its  output  files,  globally
  substituting  the  text  replacement  pattern "to_expr" for each occurrence of
  "fr_pat" in those lines which match according to the "pat" arguments  and  the
  option flags.

  Refer  to  the  help  files  of the ED (EDIT), FPAT (FIND_PATTERN), and EDST R
  (EDIT_STREAM) commands for related information.


ARGUMENTS

  pathname
  (optional)         Specify name of file to be searched.    Multiple  pathnames
                     and  wildcarding  are  permitted.    If  this  argument  is
                     present, it must  be  followed  by  "-P"  to  separate  the
                     pathname(s) from the search patterns on the command line.

                     Default if omitted:  search standard input.

  from_pattern
  (required)          Specify  target  text  string  (a  regular expression) for
                     substitution or deletion.    If  the  string  includes  the
                     characters  %  $  [  ]  {  } ! * or any other Shell special
                     characters, enclose it in  quotes  to  avoid  unpredictable
                     results.

  to_expression
  (optional)           Specify   replacement  string.    If  no  replacement  is
                     specified, the 'from_pattern' string will  be  deleted.  If
                     regular   expressions  defining  a  range  of  text  ('pat'
                     argument) are  present,  you  must  use  a  literally  null
                     'to_expression' ("") to delete 'from_pattern'.

  pat
  (optional)          Specify  range  of  text  for which the substitution is to
                     apply, in  the  form  of  a  regular  expression.  Multiple
                     expressions  separated  by  blanks  are  permitted.  Unless
                     modified by options, any line of text matching any  pattern
                     is  replaced  and all lines, changed or not, are written to
                     output.

                     Default if omitted:  use 'from_pattern' to select matching
                                          lines.


OPTIONS

  -A                  Select  only  lines  that  match  all   of   the   leading
                     expressions, in any order.

  -X                   Select   only  lines  that  match  none  of  the  leading
                     expressions.

  -O                 Write only the selected  lines  to  standard  output.    By
                     default, CHPAT writes all lines to output.

  -L                  List  name(s)  of  input  file(s) on output file(s) as the
                     input file(s) are searched.

  -OUT pathname
                     Specify name of output file.  Pathname may be derived  from
                     the  input file name.  If this option is omitted, output is
                     written to standard output.


EXAMPLES

  1. $ chpat foo bar

     Changes all occurrences of 'foo' in standard input to  'bar'
     and writes the results to standard output.

  2. $ chpat '%This' "  *" ' '

     In  lines  starting  with  'This',  it changes all occurrences
     of multiple spaces to a single space.

  3. $ chpat '%This' '%That' "  *" ' '

     Like 2., but works  on  lines  starting  with  either  'This' or
     'That'.

  4. $ chpat -a '%when' 'only$' ';' ':'

     In  lines  that start with 'when' and end with 'only', change
     all semicolons to colons.

  5. $ chpat -x not none some all

     In lines that do not contain either 'not' or 'none',  change
     all instances of 'some' to 'all'.

  6. $ chpat erase

     Delete (replace with nothing) all occurences of 'erase'.
     Exactly the same effect can be obtained with:

     $ chpat erase ''

  7. $ chpat -o other_opts pat... fr_pat to_pat

       Is exactly the same as

     $ fpat pat... | chpat other_opts fr_pat to_pat

  8. $ chpat ?*.pas -out =.new -p "if x = y" "if (x = y)"

       Change  all  occurrences  of  the  string   "if x = y"
       to "if (x = y)"  in all Pascal source files (files  ending with
       '.pas') and put the output for 'X.pas' in 'X.pas.new'.


RELATED TOPICS

  More information is available.  Type:

  - HELP PATTERNS
    for details about regular expression syntax and usage.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026