Name
sed
sed '[address1
][,address2
]s/pattern
/replacement
/[flags
]'files
sed -fscript files
By default, sed applies the substitution to every line in files
. Each address can be either a line number, or a regular expression pattern. A supplied regular expression must be defined within the forward slash delimiters (/ . . . /
).
If address1
is supplied, substitution will begin on that line number, or the first matching line, and continue until either the end of the file, or the line indicated or matched by address2
. Two subsequences, &
and \
n
, will be interpreted in replacement
based on the match results.
The sequence &
is replaced with the text matched by pattern
. The sequence \
n
corresponds to a capture group (1 . . . 9) in the current match. Here are the available flags:
n
Substitute the
n
th match in a line, wheren
is between 1 and 512.g
Substitute all occurrences of
pattern
in a line.p
Print lines with successful substitutions.
w
file
Write lines with successful substitutions to
file
.
Example
Change date formats from MM/DD/YYYY
to DD.MM.YYYY
.
$ echo 12/30/1969' |
sed 's!\([0-9][0-9]\)/\([0-9][0-9]\)/\([0-9]\{2,4\}\)!
\2.\1.\3!g'
Get Regular Expression Pocket Reference, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.