ed man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

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

	 <:t5,10,15 s72:>

       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:

       ┌─────────────────────────────┬─────────────────────────────┐
       │	 Specified	     │	       Resulting	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │,			     │1 , $			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │, addr			     │1 , addr			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │addr ,			     │addr , addr		   │
       ├─────────────────────────────┼─────────────────────────────┤
       │;			     │1 ; $			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │; addr			     │1 ; 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	  The  append  command	accepts zero or more lines of text and
       <text>	  appends it after the addressed line in the buffer. The  cur‐
       .	  rent	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	  The change command deletes the addressed lines from the buf‐
       <text>	  fer,	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	origi‐
		  nally 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 buf‐
		  fer.	The  line after the last line deleted becomes the cur‐
		  rent 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 buffer, 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 currently 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 subsequent 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 DIAGNOS‐
		  TICS 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 remem‐
		  bered path name to file. Whether the name is changed or not,
		  the  f  command  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 com‐
				 mand 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 . termi‐
				 nating input mode may be omitted if it	 would
				 be  the  last	line  of  the command 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 new‐
				 line  can  be	used  instead  of  a  slash to
				 delimit the RE. Within the RE, the RE	delim‐
				 iter  itself can be used as a literal charac‐
				 ter 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 cur‐
				 rent 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 com‐
				 mand, the next marked line is written, and so
				 on.  A	 new-line acts as a null command. An &
				 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  success‐
				 fully 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 terminated by a SIGINT signal.
				 The  G command can be terminated by an inter‐
				 rupt signal (ASCII DEL or BREAK). Any charac‐
				 ter  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 reason 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 sub‐
				 sequent ? 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			 The insert command accepts zero or more lines
       <text>			 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  com‐
				 mand  differs	from the a command only in the
				 placement of the input text. The maximum num‐
				 ber  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  cur‐
				 rent 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   a´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 writing backslash/new‐
				 line character. The length at	which  folding
				 occurs	 is  unspecified, but should be appro‐
				 priate 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 command other  than  e,
				 E, f, q, Q, r, w, or !. The current line num‐
				 ber 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	begin‐
				 ning 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 command
				 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 speci‐
				 fied, 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 cur‐
				 rently remembered file name  is  not  changed
				 unless	 file is the very first file name men‐
				 tioned 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 successful and the -s option was not spec‐
				 ified, the number of characters read is writ‐
				 ten  to standard output in the following for‐
				 mat:

				   %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 exam‐
				 ple, $r !ls appends the current directory  to
				 the  end  of  the  file  being edited. Such a
				 shell command is not remembered as  the  cur‐
				 rent 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  (&)  appearing in the replacement is replaced by the
	   string matching the RE on the current line. The special meaning  of
	   & 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 &, \, %, 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. Subsequent	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  com‐
			  mand.

       !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	remem‐
			  bered file name. If a ! appears as the first charac‐
			  ter of the shell command, it is  replaced  with  the
			  text of the previous shell command. Thus, !! repeats
			  the last shell command. If any replacements 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 specified.	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 direc‐
		 tory  is  used.  If  that fails, the file named ed.hup in the
		 directory named by the HOME environment 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 com‐
		    mand, 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 com‐
		    mand 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.

       >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	tempo‐
		   rary 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
       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │SUNWcs			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │CSI			     │Enabled			   │
       └─────────────────────────────┴─────────────────────────────┘

   /usr/xpg4/bin/ed
       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │SUNWxcu4			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │CSI			     │Enabled			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Committed			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Standard		     │See standards(5).		   │
       └─────────────────────────────┴─────────────────────────────┘

   /usr/xpg6/bin/ed
       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │SUNWxcu6			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │CSI			     │Enabled			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Standard			   │
       └─────────────────────────────┴─────────────────────────────┘

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
       < 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.11			  10 Dec 2003				 ed(1)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net