[
address1
[
,
address2
]]
s/
pattern
/
replacement
/
[
flags
]
Substitute replacement
for pattern
on each addressed line. If pattern addresses are used, the pattern //
represents the last pattern address specified. Any delimiter may be used. Use \
within pattern
or replacement
to escape the delimiter. The following flags can be specified:
g
Replace all instances of pattern
on each addressed line, not just the first instance.
p
Print the line if a successful substitution is done. If several successful substitutions are done, sed
prints multiple copies of the line.
w
file
Write the line to file
if a replacement was done. A maximum of 10 different files
can be opened.
- n
Replace n
th instance of pattern
on each addressed line. n
is any number in the range 1 to 512, and the default is 1.
Here are some short, commented scripts:
# Change third and fourth quote to ( and ):
/function/{
s/"/(/3
s/"/)/4
}
# Remove all quotes on a given line:
/Title/s/"//g
# Remove first colon and all quotes; print resulting lines:
s/://p
s/"//gp
# Change first "if" but leave "ifdef" alone:
/ifdef/!s/if/ if/