ed man page on SmartOS

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

ED(1)									 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.

       If ed executes commands with  arguments,	 it  uses  the	default	 shell
       /usr/bin/sh (see sh(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
       <text>
       .
		  The append command accepts zero or more lines	 of  text  and
		  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
       <text>
       .
		  The change command deletes the addressed lines from the buf‐
		  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 char‐
				 acter 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
       <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 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 │
       ├───────────────┼─────────────────┤
       │CSI	       │ Enabled	 │
       └───────────────┴─────────────────┘

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

   /usr/xpg6/bin/ed
       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │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.

				 Dec 10, 2003				 ED(1)
[top]

List of man pages available for SmartOS

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