COHERENT manpages

This page displays the COHERENT manpage for ed [Interactive line editor].

List of available manpages
Index


ed -- Command

Interactive line editor
ed [-] [+cmopsv] [file]

ed is the COHERENT system's interactive line editor.

ed is a line-oriented interactive text editor.  With it, you can locate and
replace text patterns, move or copy  blocks of text, and print parts of the
text.  ed can  read text from input files and  can write all or part of the
edited text to other files.

ed reads  commands from the  standard input, usually one  command per line.
Normally, ed  does not prompt for commands.  If  the optional file argument
is given,  ed edits the  given file, as  if the file  were read with  the e
command described below.

ed  manipulates a  copy of  the text  in memory rather  than with  the file
itself.  No changes to a file  occur until the user writes edited text with
the w  command.  Large files can  be divided with split  or edited with the
stream editor sed.

ed remembers  some information to simplify its  commands.  The current line
is typically the line most recently  edited or printed.  When ed reads in a
file, the last  line read becomes the current line.   The current file name
is the last  file name specified in an e  or f command.  The current search
pattern is the last pattern specified in a search specification.

ed identifies  text lines by  integer line numbers, beginning  with one for
the first line.  Several special forms identify a line or a range of lines,
as follows:

n    A decimal number n specifies the nth line of the text.

.    A period `.' specifies the current line.

$    A dollar sign `$' specifies the last line of the text.

+,-  Simple arithmetic may be performed on line numbers.

/pattern/
     Search forward  from the current  line for the next  occurrence of the
     pattern. If  ed finds no  occurrence before the  end of the  text, the
     search  wraps to  the beginning  of the  text.  Patterns,  also called
     regular expressions, are described in detail below.

?pattern?
     Search backwards  from the current line to  the previous occurrence of
     the pattern.  If ed  finds no occurrence  before the beginning  of the
     text, the search wraps to the end of the text.

amp;'x
     Lines marked with the kx command described below are identified by 'x.
     The x may be any lower-case letter.

n,m  Line specifiers  separated by a  comma `,' specify the  range of lines
     between the two given lines, inclusive.

n;m  Line  specifiers separated  by a  semicolon `;'  specify the  range of
     lines between  the two given  lines, inclusive.  Normally,  ed updates
     the current  line after it executes each command.   If a semicolon `;'
     rather  than a  comma separates  two line  specifiers, ed  updates the
     current line before reading the second.

*    An asterisk `*' specifies all lines; it is equivalent to 1,$.

Commands

ed commands consist of a single letter, which may be preceded by one or two
specifiers  that give  the line  or  lines to  which the  command is  to be
applied.  The following command summary uses the notations [n] and [n[,m]]
to refer to an optional line specifier and an optional range, respectively.
These  default to  the current  line when  omitted, except  where otherwise
noted.  A semicolon `;' may be  used instead of a comma `,' to separate two
line specifiers.

.    Print the  current line.   Also, a line  containing only a  period `.'
     marks the end of appended, changed, or inserted text.

[n]  Print given line.  If no line  number is given (i.e., the command line
     consists only  of  a newline  character), print the  line that follows
     the current line.

[n]= Print the specified line number (default: last line number).

[n]&
     Print a screen of 23 lines; equivalent to n,n+22p.

! line
     Pass the given line to the shell sh for execution.  ed prompts with an
     exclamation point `!' when execution is completed.

?    Print a brief description of the most recent error.

[n]a Append  new text  after  line n.  Terminate  new text  with line  that
     contains only a period `.'.

[n[,m]]c
     Change specified  lines to new  text.  Terminate new text  with a line
     that contains only a period `.'.

[n[,m]]d[p]
     Delete specified lines.  If p follows, print new current line.

e [file]
     Edit the specified file (default: current file name).  An error occurs
     if there  are unsaved changes.  Reissuing the  command after the error
     message forces ed to edit the file.

E [file]
     Edit the specified file (default: current file name).  No error occurs
     if there are unsaved changes.

f [file]
     Change  the current  file  name to  file  and print  it.   If file  is
     omitted, print the current file name.

[n[,m]]g/[pattern]/commands
     Globally  execute  commands  for  each  line  in the  specified  range
     (default:  all  lines) that  contains  the  pattern (default:  current
     search pattern).  The commands may extend over several lines, with all
     but the last terminated by `\'.

[n]i Insert  text  before line  n.  Terminate  new text  with  a line  that
     contains only a period `.'.

[n[,m]]j[p]
     Join specified lines into one line.   If m is not specified, use range
     n,n+1. If no  range is specified, join the current  line with the next
     line.  With optional p, print resulting line.

[n]kx
     Mark given line with lower-case letter x.

[n[,m]]l
     List selected lines, interpreting non-graphic characters.

[n[,m]]m[d]
     Move selected lines to follow line d (default: current line).

o options
     Change the given options. The  options may consist of an optional sign
     `+' or `-', followed by one  or more of the letters `cmopsv'.  Options
     are explained below.

[n[,m]][p]
     Print selected lines.  The p is optional.

q    Quit editing and exit.  An  error occurs if there are unsaved changes.
     Reissuing the command after the error message forces ed to exit.

Q    Quit editing and  exit.  Throw away all changes that  you have not yet
     saved to disk.

[n]r [file]
     Read file into current text after given line (default: last line).

[n[,m]]s[k]/[pattern1]/pattern2/[g][p]
     Search   for  pattern1  (default,   remembered  search   pattern)  and
     substitute pattern2  for kth occurrence (default,  first) on each line
     of the given range.  If g follows, substitute every occurrence on each
     line.  If p follows, print the resulting current line.

[n[,m]]t[d]
     Transfer  (copy) selected  lines to  follow  line d  (default, current
     line).

[n]u[p]
     Undo  effect of  last substitute  command.   If optional  p specified,
     print undone  line.  The specified  line must be  the last substituted
     line.

[n[,m]]v/[pattern]/commands
     Globally  execute  commands  for  each  line  in the  specified  range
     (default:  all lines)  not  containing the  pattern (default:  current
     search pattern).  The commands may extend over several lines, with all
     but the last terminated by `\'.   The v command is like the g command,
     except the sense of the search is reversed.

[n[,m]]w [file]
     Write selected  lines (default, all  lines) to file  (default, current
     file name).  The previous contents of file, if any, are lost.

[n[,m]]W [file]
     Write  specified  lines  (default,  all  lines)  to the  end  of  file
     (default, current file name).  Like  w, but appends to file instead of
     truncating it.

Patterns

Substitution commands and  search specifications may include patterns, also
called regular  expressions. A non-special  character in a  pattern matches
itself.  Special characters include the following.

^    Match beginning of line,  unless it appears immediately after `[' (see
     below).

$    Match end of line.

*    Matches zero or more repetitions of preceding character.

.    Matches any character except newline.

[chars]
     Matches any one of the enclosed chars. Ranges of letters or digits may
     be indicated using `-'.

[^chars]
     Matches  any character  except one  of the  enclosed chars.  Ranges of
     letters or digits may be indicated using `-'.

\c   Disregard special meaning of character c.

\(pattern\)
     Delimit substring pattern for use with \d, described below.

The replacement  part pattern2 of  the substitute command may  also use the
following:

&
     Insert characters matched by pattern1.

\d   Insert substring  delimited by dth  occurrence of delimiters  `\(' and
     `\)', where d is a digit.

Options

The user may specify ed options on the command line, in the environment, or
with the o command.  The available options are as follows:

c    Print character counts on e, r, and w commands.

m    Allow multiple commands per line.

o    Print line counts instead of character counts on e, r, and w commands.

p    Prompt with an `*' for each command.

s    Match lower-case  letters in a  pattern to both  upper-case and lower-
     case text characters.

v    Print verbose versions of error messages.

The c option  is normally set, and all others  are normally reset.  Options
may be  set on the command  line with a leading `+'  sign.  The `-' command
line option resets the c option.

Options may be set in the environment with an assignment, such as

    export ED=+cv

Options may be set with the `+' prefix or  reset with the `-' prefix.

See Also

commands,
elvis,
ex,
me,
sed,
vi
Introduction to the ed Line Editor

Diagnostics

ed usually prints  only the diagnostic `?' on any  error.  When the verbose
option v  is specified, the `?'  is followed by a  brief description of the
nature of the error.