unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

ed(1)                            User Commands                           ed(1)



NAME
       ed, red - text editor

SYNOPSIS
       /usr/bin/ed [-s | -]  [-p string] [-x] [-C] [file]

       /usr/xpg4/bin/ed [-s | -]  [-p string] [-x] [-C] [file]

       /usr/xpg6/bin/ed [-s | -]  [-p string] [-x] [-C] [file]

       /usr/bin/red [-s | -]  [-p string] [-x] [-C] [file]

DESCRIPTION
       The  ed  utility  is the standard text editor. If file is specified, ed
       simulates an e command (see below) on the named file. That is, the file
       is read into ed's buffer so that it can be edited.

       The  ed  utility  operates on a copy of the file it is editing. Changes
       made to the copy have no effect on the file until a w  (write)  command
       is given. The copy of the text being edited resides in a temporary file
       called the buffer. There is only one buffer.

       The red utility is a restricted version of ed. It will only allow edit-
       ing  of  files  in the current directory. red prohibits executing shell
       commands via !shell command.  Attempts  to  bypass  these  restrictions
       result in an error message (restricted shell).

       Both ed and red support the fspec(4) formatting capability. The default
       terminal mode is either stty -tabs or stty tab3, where  tab  stops  are
       set  at  eight  columns  (see stty(1)).  If, however, the first line of
       file contains a format specification, that specification will  override
       the default mode. For example, tab stops would be set at 5, 10, and 15,
       and a maximum line length of 72 would be imposed if the first  line  of
       file contains

       <&lt;:t5,10,15 s72:>&gt;

       Commands  to  ed have a simple and regular structure: zero, one, or two
       addresses followed by a single-character command, possibly followed  by
       parameters  to  that command. These addresses specify one or more lines
       in the buffer.  Every  command  that  requires  addresses  has  default
       addresses, so that the addresses can very often be omitted.

       In  general,  only  one  command may appear on a line. Certain commands
       allow the input of text. This text is placed in the  appropriate  place
       in  the  buffer.  While ed is accepting text, it is said to be in input
       mode. In this mode, no commands are recognized;  all  input  is  merely
       collected.  Leave input mode by typing a period (.) at the beginning of
       a line, followed immediately by a carriage return.

   /usr/bin/ed
       If ed executes commands with  arguments,  it  uses  the  default  shell
       /usr/bin/sh (see sh(1)).

   /usr/xpg4/bin/ed and /usr/xpg6/bin/ed
       If  ed  executes commands with arguments, it uses /usr/xpg4/bin/sh (see
       ksh(1)).

   Regular Expressions
       The ed utility supports a limited form of regular expression  notation.
       Regular  expressions are used in addresses to specify lines and in some
       commands (for example, s) to specify portions of a line that are to  be
       substituted.  To  understand  addressing in ed, it is necessary to know
       that at any time there is a current line. Generally speaking, the  cur-
       rent  line  is the last line affected by a command. The exact effect on
       the current line is discussed under the description of each command.

       Internationalized Basic Regular Expressions are used  for  all  system-
       supplied locales. See regex(5).

   ed Commands
       Commands may require zero, one, or two addresses. Commands that require
       no addresses regard the presence of an address as  an  error.  Commands
       that  accept  one  or  two  addresses  assume default addresses when an
       insufficient number of addresses is given; if more addresses are  given
       than such a command requires, the last one(s) are used.

       Typically, addresses are separated from each other by a comma (,). They
       may also be separated by a semicolon (;). In the latter case, the first
       address  is  calculated, the current line (.) is set to that value, and
       then the second address is calculated. This  feature  can  be  used  to
       determine  the  starting  line  for  forward and backward searches (see
       Rules 5 and 6, above). The second address of any  two-address  sequence
       must  correspond  to  a line in the buffer that follows the line corre-
       sponding to the first address.

       For /usr/xpg6/gbin/ed, the address can be omitted on either side of the
       comma or semicolon separator, in which case the resulting address pairs
       are as follows:


       tab() allbox; lw(2.750000i)| lw(2.750000i).  SpecifiedResulting ,1 ,  $
       ,  addr1  ,  addr  addr ,addr , addr ;1 ; $ ; addr1 ; addr addr ;addr ;
       addr


       Any <blank>s included between addresses, address separators, or address
       offsets are ignored.

       In  the  following  list of ed commands, the parentheses shown prior to
       the command are not part of the address. Rather, the  parentheses  show
       the default address(es) for the command.

       Each  address  component  can be preceded by zero or more blank charac-
       ters. The command letter can be preceded by zero or more blank  charac-
       ters.  If  a  suffix  letter (l, n, or p) is given, it must immediately
       follow the command.

       The e, E, f, r, and w commands take an optional file  parameter,  sepa-
       rated from the command letter by one or more blank characters.

       If  changes  have been made in the buffer since the last w command that
       wrote the entire buffer, ed warns the user if an  attempt  is  made  to
       destroy  the  editor  buffer  via  the  e or q commands. The ed utility
       writes the string:

       "?\n"

       (followed by an explanatory message if help mode has been  enabled  via
       the  H  command)  to standard output and continues in command mode with
       the current line number unchanged. If the e or q  command  is  repeated
       with no intervening command, ed takes effect.

       If  an  end-of-file  is  detected  on  standard input when a command is
       expected, the ed utility acts as if a q command had been entered.

       It is generally illegal for more than one command to appear on a  line.
       However, any command (except e, f, r, or w) may be suffixed by l, n, or
       p in which case the current line is either listed, numbered or written,
       respectively, as discussed below under the l, n, and p commands.

       (.)a
       <&lt;text>
       .

           The  append  command accepts zero or more lines of text and appends
           it after the addressed line in the buffer. The current line (.)  is
           left  at  the  last  inserted  line, or, if there were none, at the
           addressed line. Address 0 is legal for this command: it causes  the
           ``appended''  text to be placed at the beginning of the buffer. The
           maximum number of characters that may be entered from a terminal is
           256 per line (including the new-line character).





       (.,.)c
       <&lt;text>
       .

           The  change  command  deletes  the addressed lines from the buffer,
           then accepts zero or more lines of text that replaces  these  lines
           in the buffer. The current line (.) is left at the last line input,
           or, if there were none, at the first line that was not deleted.  If
           the  lines  deleted  were  originally at the end of the buffer, the
           current line number will be set to the  address  of  the  new  last
           line.  If  no  lines  remain in the buffer, the current line number
           will be set to 0.


           /usr/xpg4/bin/ed

               Address 0 is not legal for this command.






           /usr/xpg6/bin/ed

               Address 0 is valid for this command. It is  interpreted  as  if
               the address 1 were specified.



       C

           Same  as the X command, described later, except that ed assumes all
           text read in for the e and r commands is encrypted  unless  a  null
           key is typed in.



       (.,.)d

           The delete command deletes the addressed lines from the buffer. The
           line after the last line deleted becomes the current line.  If  the
           lines  deleted  were  originally  at the end of the buffer, the new
           last line becomes the current line. If no lines remain in the  buf-
           fer, the current line number will be set to 0.



       e file

           The edit command deletes the entire contents of the buffer and then
           reads the contents of file into the buffer. The current line (.) is
           set  to the last line of the buffer. If file is not given, the cur-
           rently remembered file name, if any, is used (see the  f  command).
           The number of bytes read will be written to standard output, unless
           the -s option was specified, in the following format:

           "%d\n" <number of bytes read>

           file is remembered for possible use as a default file name in  sub-
           sequent e, E, r, and w commands. If file is replaced by !, the rest
           of the line is taken to be a shell ( sh(1)) command whose output is
           to  be  read. Such a shell command is not remembered as the current
           file name.  See also DIAGNOSTICS below.  All  marks  are  discarded
           upon  the  completion  of a successful e command. If the buffer has
           changed since the last time the entire buffer was written, the user
           is warned, as described previously.



       E file

           The  Edit  command is like e, except that the editor does not check
           to see if any changes have been made to the buffer since the last w
           command.



       f file

           If  file  is  given, the f command changes the currently remembered
           path name to file. Whether the name is changed or not, the  f  com-
           mand  then writes the (possibly new) currently remembered path name
           to the standard output in the following format:

           "%s\n"pathname

           The current line number is unchanged.



       (1,$)g/RE/command list

           In the global command, the first step is to mark  every  line  that
           matches  the given RE. Then, for every such line, the given command
           list is executed with the current line (.) initially  set  to  that
           line. When the g command completes, the current line number has the
           value assigned by the last command in the command  list.  If  there
           were  no  matching lines, the current line number is not changed. A
           single command or the first of a list of commands  appears  on  the
           same  line  as  the  global command. All lines of a multi-line list
           except the last line must be ended with a backslash (\); a, i,  and
           c  commands  and  associated input are permitted. The . terminating
           input mode may be omitted if it would be the last line of the  com-
           mand  list.  An  empty command list is equivalent to the p command.
           The g, G, v, V, and ! commands are not  permitted  in  the  command
           list. See also the NOTES and the last paragraph before FILES below.
           Any character other than space or newline can be used instead of  a
           slash to delimit the RE. Within the RE, the RE delimiter itself can
           be used as a literal character if it is preceded by a backslash.



       (1,$)G/RE/

           In the interactive Global command, the first step is to mark  every
           line  that  matches  the  given RE. Then, for every such line, that
           line is written to standard output, the current line (.) is changed
           to  that  line, and any one command (other than one of the a, c, i,
           g, G, v, and V commands) may be input and is  executed.  After  the
           execution  of that command, the next marked line is written, and so
           on. A new-line acts as a null command. An &&amp; causes the re-execution
           of  the  most  recent  non-null command executed within the current
           invocation of G. Note:  The commands input as part of the execution
           of  the  G  command may address and affect any lines in the buffer.
           The final value of the current line number is the value set by  the
           last  command  successfully executed. (Notice that the last command
           successfully executed is the G command itself if a command fails or
           the  null  command  is specified.) If there were no matching lines,
           the current line number is not changed. The G command can be termi-
           nated  by  a  SIGINT  signal. The G command can be terminated by an
           interrupt signal (ASCII DEL or BREAK).  Any  character  other  than
           space  or newline can be used instead of a slash to delimit the RE.
           Within the RE, the RE delimiter itself can be  used  as  a  literal
           character if it is preceded by a backslash.



       h

           The help command gives a short error message that explains the rea-
           son for the most recent ? diagnostic. The current  line  number  is
           unchanged.



       H

           The  Help command causes ed to enter a mode in which error messages
           are written for all subsequent ? diagnostics. It also explains  the
           previous  ?  if there was one. The H command alternately turns this
           mode on and off; it is initially off. The current  line  number  is
           unchanged.



       (.,.)i
       <&lt;text>
       .

           The  insert  command accepts zero or more lines of text and inserts
           it before the addressed line in the buffer. The current line (.) is
           left  at  the  last  inserted  line, or, if there were none, at the
           addressed line. This command differs from the a command only in the
           placement  of the input text. The maximum number of characters that
           may be entered from a terminal is 256 per line (including the  new-
           line character).


           /usr/xpg4/bin/ed

               Address 0 is not legal for this command.






           /usr/xpg6/bin/ed

               Address  0  is  valid for this command. It is interpreted as if
               the address 1 were specified.



       (.,.+1)j

           The join command joins contiguous lines by removing the appropriate
           new-line  characters. If exactly one address is given, this command
           does nothing. If lines are joined, the current line number  is  set
           to the address of the joined line. Otherwise, the current line num-
           ber is unchanged.



       (.)kx

           The mark command marks the addressed line with name x,  which  must
           be an ASCII lower-case letter (a-z). The address  'x then addresses
           this line. The current line (.) is unchanged.



       (.,.)l

           The l command writes to standard output the addressed  lines  in  a
           visually unambiguous form. The characters ( \\, \a, \b, \f, \r, \t,
           \v) are written as the corresponding escape  sequence.  The  \n  in
           that  table is not applicable.  Non-printable characters not in the
           table are written as one three-digit octal number (with a preceding
           backslash  character) for each byte in the character, with the most
           significant byte first.

           Long lines are folded, with the point of folding indicated by writ-
           ing backslash/newline character. The length at which folding occurs
           is unspecified, but should be appropriate for  the  output  device.
           The  end  of  each  line  is  marked  with  a  $.  When  using  the
           /usr/xpg6/bin/ed command, the end of each line is marked with  a  $
           due to folding, and $ characters within the text are written with a
           preceding backslash. An l command can be appended to any other com-
           mand  other than e, E, f, q, Q, r, w, or !. The current line number
           is set to the address of the last line written.



       (.,.)ma

           The move command repositions the addressed line(s) after  the  line
           addressed  by  a. Address 0 is legal for a and causes the addressed
           line(s) to be moved to the beginning of the file. It is an error if
           address  a  falls within the range of moved lines. The current line
           (.) is left at the last line moved.



       (.,.)n

           The number command writes the addressed lines, preceding each  line
           by  its  line  number  and a tab character. The current line (.) is
           left at the last line written. The n command may be appended to any
           command other than e, E, f, q, Q, r, w, or !.



       (.,.)p

           The  print  command  writes the addressed lines to standard output.
           The current line (.) is left at the last line written. The  p  com-
           mand may be appended to any command other than e, E, f, q, Q, r, w,
           or !. For example, dp deletes the current line and writes  the  new
           current line.



       P

           The  P command causes ed to prompt with an asterisk (*) (or string,
           if -p is specified) for all  subsequent  commands.  The  P  command
           alternatively turns this mode on and off; it is initially on if the
           -p  option  is  specified,  otherwise  off.  The  current  line  is
           unchanged.



       q

           The quit command causes ed to exit. If the buffer has changed since
           the last time the entire buffer was written, the  user  is  warned.
           See DIAGNOSTICS.



       Q

           The  editor exits without checking if changes have been made in the
           buffer since the last w command.



       ($)r file

           The read command reads the contents of file  into  the  buffer.  If
           file  is  not given, the currently remembered file name, if any, is
           used (see the e and f commands). The currently remembered file name
           is  not  changed  unless file is the very first file name mentioned
           since ed was invoked. Address 0 is legal for r and causes the  file
           to  be  read in at the beginning of the buffer. If the read is suc-
           cessful and the -s option was not specified, the number of  charac-
           ters read is written to standard output in the following format:


           %d\n, <number of bytes read>

           The  current  line  (.)  is  set  to the last line read. If file is
           replaced by !, the rest of the line is taken to be a shell  command
           (see sh(1)) whose output is to be read. For example, $r !ls appends
           the current directory to the end of the file being edited.  Such  a
           shell command is not remembered as the current file name.



       (.,.)s/RE/replacement/
       (.,.)s/RE/replacement/count, count=[1-2047]
       (.,.)s/RE/replacement/g
       (.,.)s/RE/replacement/l
       (.,.)s/RE/replacement/n
       (.,.)s/RE/replacement/p

           The  substitute  command searches each addressed line for an occur-
           rence of the specified RE. Zero or more substitution  commands  can
           be  specified.  In  each  line in which a match is found, all (non-
           overlapped) matched strings are replaced by the replacement if  the
           global  replacement  indicator  g appears after the command. If the
           global indicator does not appear, only the first occurrence of  the
           matched  string  is  replaced.  If a number count appears after the
           command, only the count-th occurrence of the matched string on each
           addressed  line  is  replaced.  It  is an error if the substitution
           fails on all addressed lines. Any character  other  than  space  or
           new-line may be used instead of the slash (/) to delimit the RE and
           the replacement. The current line (.) is left at the last  line  on
           which  a  substitution  occurred.  Within  the RE, the RE delimiter
           itself can be used as a literal character if it is  preceded  by  a
           backslash. See also the last paragraph before FILES below.

           An  ampersand  (&&amp;)  appearing in the replacement is replaced by the
           string matching the RE on the current line. The special meaning  of
           &&amp; in this context may be suppressed by preceding it by \. As a more
           general feature, the  characters  \n,  where  n  is  a  digit,  are
           replaced  by  the text matched by the n-th regular subexpression of
           the specified RE enclosed between \( and \). When nested  parenthe-
           sized  subexpressions  are  present,  n  is  determined by counting
           occurrences of \( starting from the left. When the character  %  is
           the  only character in the replacement, the replacement used in the
           most recent substitute command is used as the  replacement  in  the
           current  substitute  command.  If  there was no previous substitute
           command, the use of % in this manner is an error. The %  loses  its
           special meaning when it is in a replacement string of more than one
           character or is preceded by a \. For each backslash (\) encountered
           in  scanning replacement from beginning to end, the following char-
           acter loses its special meaning (if any). It  is  unspecified  what
           special  meaning  is  given to any character other than &&amp;, \, %, or
           digits.

           A line may be split by substituting a new-line character  into  it.
           The  new-line in the replacement must be escaped by preceding it by
           \. Such substitution cannot be done as part of a  g  or  v  command
           list.  The  current  line  number is set to the address of the last
           line on which a substitution is performed. If  no  substitution  is
           performed,  the  current  line  number  is  unchanged. If a line is
           split, a substitution is considered to have been performed on  each
           of  the  new  lines  for the purpose of determining the new current
           line number. A substitution is considered to  have  been  performed
           even  if  the replacement string is identical to the string that it
           replaces.

           The substitute command supports the following indicators:


           count    Substitute for the countth occurrence only of the RE found
                    on each addressed line. count must be between 1-2047.









           g        Globally  substitute  for all non-overlapping instances of
                    the RE rather than just the first one. If both g and count
                    are specified, the results are unspecified.



           l        Write to standard output the final line in which a substi-
                    tution was made. The line is written in the format  speci-
                    fied for the l command.



           n        Write to standard output the final line in which a substi-
                    tution was made. The line is written in the format  speci-
                    fied for the n command.



           p        Write to standard output the final line in which a substi-
                    tution was made. The line will be written  in  the  format
                    specified for the p command.



       (.,.)ta

           This  command  acts  just like the m command, except that a copy of
           the addressed lines is placed after address a (which may be 0). The
           current line (.) is left at the last line copied.



       u

           The  undo  command  nullifies the effect of the most recent command
           that modified anything in the buffer, namely the most recent a,  c,
           d,  g, i, j, m, r, s, t, u, v, G, or V command. All changes made to
           the buffer by a g, G, v, or V global command is undone as a  single
           change.If  no changes were made by the global command (such as with
           g/ RE/p), the u command has no effect. The current line  number  is
           set  to  the  value  it  had  immediately before the  command being
           undone started.



       (1,$)v/RE/command list

           This command is the same as the global command g, except  that  the
           lines  marked during the first step are those that do not match the
           RE.



       (1,$)V/RE/

           This command is the same  as  the  interactive  global  command  G,
           except  that  the  lines  that are marked during the first step are
           those that do not match the RE.



       (1,$)w file

           The write command writes the addressed lines  into  file.  If  file
           does  not exist, it is created with mode 666 (readable and writable
           by everyone), unless your file creation  mask  dictates  otherwise.
           See the description of the umask special command on sh(1). The cur-
           rently remembered file name is not changed unless file is the  very
           first  file name mentioned since ed was invoked. If no file name is
           given, the currently remembered file name, if any, is used (see the
           e  and  f commands). The current line (.) is unchanged. If the com-
           mand is successful, the number of characters  written  is  printed,
           unless the -s option is specified in the following format:


           "%d\n",<number of bytes written>

           If  file  is  replaced  by !, the rest of the line is taken to be a
           shell (see sh(1)) command whose standard  input  is  the  addressed
           lines.  Such  a shell command is not remembered as the current path
           name. This usage of the write command with ! is to be considered as
           a ``last w command that wrote the entire buffer''.



       (1,$)W file

           This command is the same as the write command above, except that it
           appends the addressed lines to the end of file  if  it  exists.  If
           file  does  not  exist,  it is created as described above for the w
           command.



       X

           An educated guess is made to determine whether text read for the  e
           and  r commands is encrypted. A null key turns off encryption. Sub-
           sequent e, r, and w commands  will  use  this  key  to  encrypt  or
           decrypt  the  text.  An  explicitly empty key turns off encryption.
           Also, see the -x option of ed.



       ($)=

           The line number of the addressed line is written to standard output
           in the following format:


           "%d\n"<line number>

           The current line number is unchanged by this command.



       !shell command

           The  remainder  of  the line after the ! is sent to the UNIX system
           shell (see sh(1)) to be interpreted as a command. Within  the  text
           of  that  command,  the  unescaped character % is replaced with the
           remembered file name. If a !  appears as the first character of the
           shell  command,  it is replaced with the text of the previous shell
           command. Thus, !! repeats the last shell command. If  any  replace-
           ments  of % or ! are performed, the modified line is written to the
           standard output before command is  executed.  The  !  command  will
           write:

           "!\n"

           to  standard output upon completion, unless the -s option is speci-
           fied. The current line number is unchanged.



       (.+1)<new-line>

           An address alone on a line causes the addressed line to be written.
           A  new-line  alone is equivalent to .+1p. It is useful for stepping
           forward through the buffer. The current line number will be set  to
           the address of the written line.



       If  an interrupt signal (ASCII DEL or BREAK) is sent, ed writes a "?\n"
       and returns to its command level.

       The ed utility takes the standard action for all signals with the  fol-
       lowing exceptions:

       SIGINT          The  ed utility interrupts its current activity, writes
                       the string "?\n" to standard  output,  and  returns  to
                       command mode.



       SIGHUP          If  the  buffer  is not empty and has changed since the
                       last write, the ed utility attempts to write a copy  of
                       the  buffer  in a file. First, the file named ed.hup in
                       the current directory is used. If that fails, the  file
                       named  ed.hup  in the directory named by the HOME envi-
                       ronment variable is used. In any case, the  ed  utility
                       exits without returning to command mode.



       Some  size  limitations  are  in  effect: 512 characters in a line, 256
       characters in a global command list, and 255  characters  in  the  path
       name  of  a  file  (counting slashes). The limit on the number of lines
       depends on the amount of user memory. Each line takes 1 word.

       When reading a file, ed discards ASCII and NUL characters.

       If a file is not terminated by a new-line character, ed  adds  one  and
       puts out a message explaining what it did.

       If the closing delimiter of an RE or of a replacement string (for exam-
       ple, /) would be the last character before a new-line,  that  delimiter
       may  be  omitted, in which case the addressed line is written. The fol-
       lowing pairs of commands are equivalent:

       s/s1/s2         s/s1/s2/p



       g/s1            g/s1/p



       ?s1             ?s1?



       If an invalid command is entered, ed writes the string:

       "?\n"

       (followed by an explanatory message if help mode has  been  enabled  by
       the  H  command)  to standard output and continues in command mode with
       the current line number unchanged.

OPTIONS
       -C              Encryption option. The same as the  -x  option,  except
                       that  ed  simulates  a C command. The C command is like
                       the X command, except that all text read in is  assumed
                       to have been encrypted.



       -pstring        Allows the user to specify a prompt string. By default,
                       there is no prompt string.



       -s |  -;        Suppresses the writing of character counts by e, r, and
                       w  commands,  of diagnostics from e and q commands, and
                       of the ! prompt after a !shell command.



       -x              Encryption option. When -x is used, ed simulates  an  X
                       command  and  prompts the user for a key. The X command
                       makes an educated guess to determine whether text  read
                       in  is  encrypted  or not. The temporary buffer file is
                       encrypted also, using a transformed version of the  key
                       typed in for the -x option. See NOTES.



OPERANDS
       The following operand is supported:

       file     If  file  is  specified, ed simulates an e command on the file
                named by the path name file before accepting commands from the
                standard input.



USAGE
       See largefile(5) for the description of the behavior of ed and red when
       encountering files greater than or equal to 2 Gbyte ( 2**31 bytes).

ENVIRONMENT VARIABLES
       See environ(5) for descriptions of the following environment  variables
       that  affect the execution of ed: HOME, LANG, LC_ALL, LC_CTYPE, LC_COL-
       LATE, LC_MESSAGES, and NLSPATH.

EXIT STATUS
       The following exit values are returned:

       0        Successful completion without any file or command errors.



       >&gt;0       An error occurred.



FILES
       $TMPDIR         If this environment variable is not NULL, its value  is
                       used in place of /var/tmp as the directory name for the
                       temporary work file.



       /var/tmp        If /var/tmp exists, it is used as  the  directory  name
                       for the temporary work file.



       /tmp            If the environment variable TMPDIR does not exist or is
                       NULL, and if /var/tmp does not exist, then /tmp is used
                       as the directory name for the temporary work file.



       ed.hup          Work is saved here if the terminal is hung up.



ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

   /usr/bin/ed, /usr/bin/red
       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).   ATTRIBUTE  TYPEATTRIBUTE   VALUE   AvailabilitySUNWcsu
       CSIEnabled


   /usr/xpg4/bin/ed
       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).   ATTRIBUTE  TYPEATTRIBUTE  VALUE   AvailabilitySUNWxcu4
       CSIEnabled Interface StabilityStandard


   /usr/xpg6/bin/ed
       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).   ATTRIBUTE  TYPEATTRIBUTE  VALUE   AvailabilitySUNWxcu6
       CSIEnabled Interface StabilityStandard


SEE ALSO
       bfs(1),  edit(1),  ex(1),  grep(1),  ksh(1),  sed(1),  sh(1),  stty(1),
       umask(1), vi(1), fspec(4), attributes(5),  environ(  5),  largefile(5),
       regex(5), standards(5)

DIAGNOSTICS
       ?        for command errors.



       ?file    for  an  inaccessible file. Use the help and Help commands for
                detailed explanations.



       If changes have been made in the buffer since the last w  command  that
       wrote  the  entire  buffer,  ed warns the user if an attempt is made to
       destroy ed's buffer via the e or q commands. It writes ? and allows one
       to  continue  editing.  A second e or q command at this point will take
       effect. The -s command-line option inhibits this feature.

NOTES
       The - option, although it continues to be supported, has been  replaced
       in  the  documentation by the -s option that follows the Command Syntax
       Standard (see intro(1)).

       A ! command cannot be subject to a g or a v command.

       The ! command and the ! escape from the e, r, and w commands cannot  be
       used if the editor is invoked from a restricted shell (see sh(1)).

       The sequence \n in an RE does not match a new-line character.

       If the editor input is coming from a command file (for example, ed file
       <&lt; ed_cmd_file), the editor exits at the first failure.

       Loading an alternate malloc() library using  the  environment  variable
       LD_PRELOAD can cause problems for /usr/bin/ed.




SunOS 5.10                        10 Dec 2003                            ed(1)