Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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  re-
       sult 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  ad-
       dresses,	so that	the addresses can very often be	omitted.

       In general, only	one command may	appear on a line. Certain commands al-
       low 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  col-
       lected.	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 in-
       sufficient 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  de-
       termine	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 corresponding
       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 de-
       stroy  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 ex-
       pected, 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 current line (.)  is
	   left	 at the	last inserted line, or,	if there were none, at the ad-
	   dressed 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 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 ex-
	   cept	the last line must be ended with a backslash (\); a, i,	and  c
	   commands  and associated input are permitted. The . terminating in-
	   put 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 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.

       (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 & causes the re-execution
	   of the most recent non-null command executed	within the current in-
	   vocation 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 in-
	   terrupt 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
       <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 ad-
	   dressed 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  al-
	   ternatively	turns  this mode on and	off; it	is initially on	if the
	   -p option is	specified, otherwise off.  The	current	 line  is  un-
	   changed.

       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 re-
	   placed 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 it-
	   self	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  re-
	   placed by the text matched by the n-th regular subexpression	of the
	   specified RE	enclosed between \( and	\). When nested	 parenthesized
	   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 re-
	   cent	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 charac-
	   ter or is preceded by a \. For each backslash  (\)  encountered  in
	   scanning replacement	from beginning to end, the following character
	   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  un-
	   done	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, ex-
	   cept	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 de-
	   crypt 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 re-
	   membered  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 de-
       pends 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.

       >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
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWcsu			   |
       +-----------------------------+-----------------------------+
       |CSI			     |Enabled			   |
       +-----------------------------+-----------------------------+

   /usr/xpg4/bin/ed
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWxcu4			   |
       +-----------------------------+-----------------------------+
       |CSI			     |Enabled			   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

   /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 de-
       stroy  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.10			  10 Dec 2003				 ed(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | OPERANDS | USAGE | ENVIRONMENT VARIABLES | EXIT STATUS | FILES | ATTRIBUTES | SEE ALSO | DIAGNOSTICS | NOTES

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ed&sektion=1&manpath=SunOS+5.10>

home | help