sed(1)sed(1)NAMEsed - stream text editor
script]... script_file]... [file]...
copies the named text files (standard input default) to the standard
output, edited according to a script containing up to 100 commands.
Only complete input lines are processed. Any input text at the end of
a file that is not terminated by a new-line character is ignored.
recognizes the following options:
Take script from file
Edit according to
script. If there is just one option and no
options, the flag can be omitted.
Suppress the default output.
interprets all and arguments in the order given. Use caution, if mix‐
ing and options, to avoid unpredictable or incorrect results.
A script consists of editor commands, one per line, of the following
[address address]] function [arguments]
In normal operation, cyclically copies a line of input into a pattern
space (unless there is something left after a command), applies in
sequence all commands whose addresses select that pattern space, and,
at the end of the script, copies the pattern space to the standard out‐
put (except under and deletes the pattern space.
Some of the commands use a hold space to save all or part of the pat‐
tern space for subsequent retrieval.
An address is either a decimal number that counts input lines cumula‐
tively across files, a which addresses the last line of input, or a
context address; that is, a in the style of ed(1) modified thus:
· In a context address, the construction where ? is any char‐
acter, is identical to Note that in the context address the
second stands for itself, so that the regular expression is
· The escape sequence matches a new-line character embedded in
the pattern space.
· A period matches any character except the terminal new-line
of the pattern space.
· A command line with no addresses selects every pattern space.
· A command line with one address selects each pattern space
that matches the address.
· A command line with two addresses selects the inclusive range
from the first pattern space that matches the first address
through the next pattern space that matches the second (if
the second address is a number less than or equal to the line
number first selected, only one line is selected). There‐
after the process is repeated, looking again for the first
supports Basic Regular Expression syntax (see regexp(5)).
Editing commands can also be applied to only non-selected pattern spa‐
ces by use of the negation function (described below).
In the following list of functions, the maximum number of permissible
addresses for each function is indicated in parentheses. Other func‐
tion elements are interpreted as follows:
text One or more lines, all but the last of which end
with to hide the new-line. Backslashes in text are
treated like backslashes in the replacement string
of an command, and can be used to protect initial
blanks and tabs against the stripping that is done
on every script line.
rfile Must terminate the command line, and must be pre‐
ceded by exactly one blank.
wfile Must terminate the command line, and must be pre‐
ceded by exactly one blank. Each wfile is created
before processing begins. There can be at most 10
distinct wfile arguments.
recognizes the following functions:
text Append. Place text on the output before reading
next input line.
Branch to the
command bearing label. If no label is specified,
branch to the end of the script.
text Change. Delete the pattern space. With 0 or
1 address or at the end of a 2-address range,
place text on the output. Start the next
Delete pattern space and start the next cycle.
Delete initial segment of pattern space through first
and start the next cycle.
Replace contents of the pattern space with contents of
the hold space.
Append contents of hold space to the pattern space.
Replace contents of the hold space with contents of the
Append the contents of the pattern space to the hold
text Insert. Place text on the standard
List the pattern space on the standard output in
an unambiguous form.
Non-printing characters are spelled in
three-digit octal number format (with
a preceding backslash), and long lines
Copy the pattern space to the standard output
if the default output has not been
suppressed (by the option on the com‐
mand line or the command in the script
file). Replace the pattern space with
the next line of input.
Append the next line of input to the pattern space
with an embedded new-line. (The cur‐
rent line number changes.)
Print. Copy the pattern space to the standard
Copy the initial segment of the pattern space
the first new-line to the standard
Quit. Branch to the end of the script. Do
not start a new cycle.
Read contents of
rfile and place on output before read‐
ing the next input line.
Substitute replacement string for instances of
regular expression in the pattern
space. Any character can be used
instead of For a fuller description
see ed(1). flags is zero or more of:
n n=1-2048 Substitute for
just the nth occurrence
of regular expression
in the pattern space.
Global. Substitute for all non-
of regular expression
rather than just the
Print the pattern space if a
replacement was made
and the default output
has been suppressed (by
the option on the com‐
mand line or the com‐
mand in the script
Under the environment
(see standards(5)), the
pattern space is
printed twice, if the
option is not specified
on the command line.
Write. Append the pattern
space to wfile if a
replacement was made.
Test. Branch to the command bearing the
label if any substitutions have been
made since the most recent reading of
an input line or execution of a If
label is empty, branch to the end of
Write. Append the pattern space to
Exchange the contents of the pattern and hold spa‐
Transform. Replace all occurrences of characters
string1 with the corresponding charac‐
ter in string2. The lengths of
string1 and string2 must be equal.
Any character other than backslash or
newline can be used instead of slash
to delimit the two strings.
If a backslash character is immedi‐
ately followed by another backslash
character in string1 or string2, the
two backslash characters will be han‐
dled as a single literal backslash
The delimiter itself can be used as a
literal character in string1 and
string2 if it is preceded by a back‐
slash. The only exception is charac‐
ter "n" as the delimiter, because
backslash-n, "\n", will be interpreted
as a newline.
The meaning of a backslash is unde‐
fined if it is followed by any charac‐
ter that is not "n", a backslash, or
the delimiter character.
Don't. Apply the function (or group, if func‐
tion is only to lines selected by the
address or addresses.
This command does nothing; it bears a
label for and commands to branch to.
Place the current line number on the standard out‐
put as a line.
Execute the following commands through a matching
only when the pattern space is
selected. The syntax is:
(0) An empty command is ignored.
If a appears as the first character on the
first line of a script file, that
entire line is treated as a comment
with one exception: If the character
after the is an the default output is
suppressed. The rest of the line
after is also ignored. A script file
must contain at least one non-comment
For information about the UNIX Standard environ‐
ment, see standards(5).
provides a default value for the internationaliza‐
tion variables that are unset or null. If is unset
or null, the default value of "C" (see lang(5)) is
used. If any of the internationalization variables
contains an invalid setting, will behave as if all
internationalization variables are set to "C".
If set to a non-empty string value, overrides the
values of all the other internationalization vari‐
determines the interpretation of text as single
and/or multi-byte characters, the classification
of characters as printable, and the characters
matched by character class expressions in regular
determines the locale that should be used to
affect the format and contents of diagnostic mes‐
sages written to standard error and informative
messages written to standard output.
determines the location of message catalogues for
the processing of
International Code Set Support
Single- and multi-byte character code sets are
Make a simple substitution in a file from the com‐
mand line or from a shell script, changing to
Same as above but use shell or environment vari‐
ables and in search and replacement strings:
Multiple substitutions in a single command:
limits command scripts to a total of not more than
The hold space is limited to 8192 characters.
processes only text files. See the glossary for a
definition of text files and their limitations.
was developed by OSF and HP.
SEE ALSOawk(1), ed(1), grep(1), environ(5), lang(5), reg‐
tutorial in the