1 EXTRACT

 Extracts one or more labeled blocks of text from a file or list of files
 and writes them to one or more output files, depending on the value of the
 labels. For each distinct label, a single output file is produced
 containing the concatenation of all blocks with that label in any input
 file.

 Format:
     EXTRACT input-file-spec[,...] [output-file-spec[,...]]

2 Parameters

 input-file-spec[,...]

  Specifies the names of one or more input files from which blocks will be
  extracted. If you specify more than one input file, you can separate the
  names with either commas or plus signs. 

  You can use wildcard characters in the input file specifications. 

 [output-file-spec[,...]]

  Specifies both the output files into which extracted blocks will be copied
  and the labels which indicate the blocks to be extracted. You must specify
  at least one field in each output file specification. 

  The EXTRACT command then expands each output file specification by filling
  in the missing fields as follows: If the device or directory is not
  specified, your current default device and directory are used. EXTRACT
  replaces a missing file name or file type with the corresponding field of
  the input file specification. If you specify more than one input file,
  EXTRACT uses the fields from the first input file to determine missing
  fields in the output file specification. However, if you have specified
  the /OUTPUT qualifier, missing fields are taken first from the file
  specification on the /OUTPUT qualifier, then from the input file
  specification. Thus
     $ EXTRACT [XDIR]X.SRC,OTHER  .PAS,.MSG,CMD.CLD,PROG
  would produce the four files X.PAS, X.MSG, CMD.CLD and PROG.SRC in your
  default directory;
     $ EXTRACT/OUTPUT [XDIR]X.SRC,OTHER  .PAS,.MSG,CMD.CLD,PROG
  would produce the files [XDIR]X.PAS, [XDIR]X.MSG, [XDIR]CMD.CLD and
  [XDIR]PROG.SRC; and
     $ EXTRACT/OUTPUT=DISK:XXX [XDIR]X.SRC,OTHER  .PAS,.MSG,CMD.CLD,PROG
  would produce the files DISK:[XDIR]XXX.PAS, DISK:[XDIR]XXX.MSG,
  DISK:[XDIR]CMD.CLD and DISK:[XDIR]PROG.SRC. EXTRACT ignores any version
  numbers on output file specifications; it always creates a new file with a
  version number one greater than the highest existing version number.

  The EXTRACT command then examines the labels on each block in the input
  file(s), expanding them into complete file specifications as described
  above. If an expanded label on a block matches an expanded file
  specification, the block is copied to the corresponding output file.

  If you do not specify any output file specification, EXTRACT will write to
  as many output files as are necessary to copy every block.

  You may not use wildcard characters in the output file specifications.
2 Command_Qualifiers

/BEGIN_BLOCK

 Specifies the string that must appear starting at the first column of a
 line to signal the beginning of a block to be extracted. This string must
 be followed by one or more labels, separated by spaces or tabs. If one of
 the labels on the BEGIN_BLOCK line is equal to one of the output file
 specifcations on on the EXTRACT command line after both have been expanded
 (see Parameters), the block will be copied to the designated output file,
 starting with the line following the BEGIN_BLOCK line and ending with the
 line preceding the next END_BLOCK line with that label.

 If omitted, the default is /BEGIN_BLOCK="{@+"

/END_BLOCK

 Specifies the string that must appear starting at the first column of a
 line to signal the end of a block to be extracted. This string must be
 followed by one or more labels, separated by spaces or tabs. If one of the
 labels on the END_BLOCK line is equal to one of the output file
 specifications on the EXTRACT command line after both have been expanded
 (see Parameters), EXTRACT will cease copying the block to the designated
 file.

 If omitted, the default is /END_BLOCK="{@-"

/COMMENT

 Specifies a single character. If this character occurs on a BLOCK_BEGIN or
 BLOCK_END line, the EXTRACT command will ignore the rest of the line.

 The default is /COMMENT="}".

2 Positional_Qualifiers

/CHECK_DIFFERENCES

 Specifies that EXTRACT command should not create an output file if the file
 produced would be equivalent to the highest numbered existing version of
 the file. Two files are considered equivalent if they are equal except for
 blank lines and trailing blanks.

 If you specify /NOCHECK_DIFFERENCES, EXTRACT will create the associated
 output file unconditionally.

 If you specify /CHECK_DIFFERENCES after the EXTRACT command verb, EXTRACT
 will check differences for every output file.

 If you specify /CHECK_DIFFERENCES after a single output file specification,
 EXTRACT will check differences for that output file only.

/KEEP_PLACE

 Specifies that the EXTRACT command should ensure that each block in the
 output file starts on the same line as corresponding block in the input
 file, by writing empty lines to the output file as placeholders. This is
 useful if the input file is to be split into a number of files which are
 then processed by language compilers or other programs that identify errors
 by line number--the line number reported will correspond to the line number
 in the input file. 

 If you specify /NOKEEP_PLACE, EXTRACT will copy the requisite blocks into
 the output file(s) with no additional empty lines. 

 If you specify /KEEP_PLACE after the EXTRACT command verb, EXTRACT will
 write placeholding lines for every output file. 

 If you specify /KEEP_PLACE after a single output file specification,
 EXTRACT will write placeholding lines for that output file only. 
