Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ commands — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ED

PATTERNS

HELP ED COMMANDS        83/08/15

                      HELP ED COMMANDS


COMMAND FORMAT

  Commands to ED have a consistent format: zero, one, or two line addresses
  followed by a single character command, with optional parameters following
  the command.  The general format is:

     [line,][line]command parameters

  The [line] specifies a line number or address in the current edit buffer.
  There is usually a useful default for each command (normally the current
  line) so that you don't need to specify an address explicitly.


LINE ADDRESSES

  Line addresses are formed from the following components:

     17           an integer number
     .            the current line
     $            the last line in the buffer
     .+n          n lines past the current line
     .-n          n lines before the current line
     /pattern/    a forward context search
     \pattern\    a backward context search

  Line numbers can be separated by commas or semicolons; a semicolon sets the
  current line to the previous address before the next address is interpreted.
  This feature can be used to determine the starting line for forward and
  backward context searches (// and \\).


REGULAR EXPRESSIONS

  ED supports regular expression notation for specifying patterns in line
  addresses and in the S, G, and X commands.  A regular expression represents
  one or more strings of characters to search for.  These search and substitute
  operations are identical in function to their Display Manager counterparts,
  although the syntax of the DM's S command differs slightly.


SUMMARY OF REGULAR EXPRESSION NOTATION

  c        Literal character
  ?        Any character (except newline)
  %        Beginning of line
  $        End of line
  [...]    Character class (any one of these characters)
  [~...]   Negated character class (all characters except those in brackets)
  [c1-c2]  Any single character in the range c1 to c2
  @c       Escaped character (e.g.,@@%, @@[, @@*)
  @n       Newline
  @t       Tab character
  *        Closure  (zero or more occurrences of previous pattern)
  {...}    Tagged pattern



DESCRIPTION OF ED COMMANDS

  The following is a list of ED commands.  Default line addresses are in
  parentheses. Commands may be typed in either upper- or lowercase.

  (.)A
  [text]
  .            The append command reads the text and appends it after the
               addressed line.  The current line is left on the last line input,
               if any.  If no lines are input, the current line remains on the
               addressed line.  Signify the end of the text by typing a line
               with a period as its first and only character.

  (.)B[+/./-][screen size]
               The browse command is a shorthand command to print out a
               screenful of data.  It has three basic forms, any of which may
               be followed by a screen size.  A simple B (or B+) prints the
               current line and the screen of text after it.  B- prints the
               screen of text preceding (and including) the addressed line.
               B. prints a screenful of text, centered on the addressed line.
               Except for the B. command, these commands leave the current line
               at the last line printed.  The default screen size is 23 lines.
               If you specify a screen size, it becomes the default screen size
               for the rest of the editing session or until changed.

  (.,.)C
  [text]
  .
               The change command deletes the addressed lines, then accepts
               input text which replaces these lines.  The current line is
               left at the last line input, if there were any, otherwise at
               the first line not deleted.  Signify the end of the text by
               typing a line with a period as its first and only character.

  (.,.)D
               The delete command deletes the addressed lines from the buffer.
               The line originally after the last line deleted becomes the
               current line; however, if the lines deleted were at the end of
               the file, the new last line becomes the current line.

  E [filename]
               The edit command deletes the entire contents of the buffer and
               then reads in the named file.  When it executes this command, ED
               sets the current line to the last line of the buffer and displays
               the number of lines read.  Also, it remembers the supplied
               filename for possible use as a default file name in a subsequent
               R or W command.

  F [filename]
               If you specify a filename, the currently remembered filename is
               changed to that name.  Otherwise, ED prints the currently
               remembered filename.

  (1,$)G/regular expression/command
               The global command executes the other specified command for every
               line that matches the regular expression.  To execute multiple
               commands on the lines matched, place each on a separate line and
               terminate each command except the last with an at sign (@).
               For example,

               g/foo/s/bar/zot/@@     For all lines containing the string "foo",
               s/wazoo/munch/         replace "bar" with "zot" and "wazoo" with
                                      "munch".


(.)I
<text>
.
               The insert command inserts <text> before the addressed line.
               The current line becomes the last line input, or, if there are no
               new lines, the addressed line.  This command differs from the A
               command only in the placement of text.  Signify the end of the
               text by typing a line with a period as its first and only
               character.

(.,.)K<address>
               The kopy command copies the addressed lines to the position after
               the line specified by <address>.  The last of the copied lines
               becomes the current line.

(.,.)M<address>
               The move command deletes the addressed lines from their original
               location, and places them after the line specified by <address>.
               The last of the moved lines becomes the current line.

(.,.)P
               The print command prints the addressed lines.  The last line
               printed becomes the current line. The P command can be used as a
               modifier following any other command, except the A, C, I, or Q
               commands.  When used in this way, it prints the last line
               affected by the command.

Q
               The quit command causes ED to exit.  If you have not written the
               file since changing it, ED reminds you once to do so.

(.)R [filename]
               The read command reads the named file into the buffer after the
               addressed line.  If you do not specify a file name, ED uses the
               remembered filename (see E and F commands).  The remembered
               filename is not changed.  The address 0 (zero) causes ED to
               read the file in at the beginning of the buffer.  If the read
               is successful, the number of lines read is displayed.  The last
               line read becomes the current line.

(.,.)S/regular expression/replacement/   OR
(.,.)S/regular expression/replacement/G

               The substitute command searches each addressed line for an
               occurrence of the regular expression.  On each line that contains
               a match, ED replaces the first occurrence of the expression with
               the replacement string.  If the global replacement indicator G
               follows the command, all occurrences of the regular expression
               are replaced.  The delimiting character for the regular
               expression and replacement need not be a slash (/);  you can
               use any character except a space or newline. If the substitution
               fails on all addressed lines, ED prints a question mark (?).
               The last line substituted becomes the current line.  If no
               regular expression is specified (for example, S//pat/), ED
               uses the previous regular expression.

               An ampersand (&) in the replacement is replaced by the string
               that matched the regular expression.  To suppress this special
               meaning of &, precede it with an at sign (@).  Note that except
               for &, all characters in the replacement string are inserted
               literally.

               To split or merge lines, use the symbol '@n' to stand for the
               NEWLINE character at the end of a line.


(1,$)W [filename]
               The write command writes the addressed lines into the file.  If
               the specified file does not exist, it is created.  This command
               does not change the remembered filename.  If no filename is
               given, the remembered filename is used (see the E and F
               commands).  The current line is left unchanged.  If the
               command is successful, ED displays the number of lines written.

(1,$)X/regular expression/command
               The except command is the same as the global command except
               that commands are executed for every line that does not contain
               a match for the regular expression.

(.)=
               The equals command displays the line number of the addressed
               line.  The current line is not changed.

# comment
               Text following a pound sign (@#) in the first column of a line
               is treated as a comment and is ignored by the editor.  This
               command allows ED scripts to contain comments.  Only whole-line
               comments are permitted (i.e., you can't place comments at the
               ends of other legal command lines).

(.+1)<carriage return>
               An address alone on a line causes the addressed line to be
               displayed.  A blank line alone is equivalent to '.+1' and thus
               is useful for stepping through text.


RELATED TOPICS

  More information is available.  Type:

    - HELP ED
      for information on using the Shell command ED.

    - HELP PATTERNS
      for details about regular expressions.

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