Previous: Extended Commands, Up: sed Programs
Until this chapter, we have only encountered escapes of the form ‘\^’, which tell sed not to interpret the circumflex as a special character, but rather to take it literally. For example, ‘\*’ matches a single asterisk rather than zero or more backslashes.
This chapter introduces another kind of escape1—that is, escapes that are applied to a character or sequence of characters that ordinarily are taken literally, and that sed replaces with a special character. This provides a way of encoding non-printable characters in patterns in a visible manner. There is no restriction on the appearance of non-printing characters in a sed script but when a script is being prepared in the shell or by text editing, it is usually easier to use one of the following escape sequences than the binary character it represents:
The list of these escapes is:
\a
\f
\n
\r
\t
\v
\c
x\d
xxx\o
xxx\x
xx‘\b’ (backspace) was omitted because of the conflict with the existing “word boundary” meaning.
Other escapes match a particular character class and are valid only in regular expressions:
\w
\W
\b
\B
\`
^
in multi-line mode.
\'
$
in multi-line mode.
[1] All
the escapes introduced here are GNU
extensions, with the exception of \n
. In basic regular
expression mode, setting POSIXLY_CORRECT
disables them inside
bracket expressions.