## 6.2. Metacharacters, Listed by Unix Program

Some metacharacters are valid for one program but not for another. Those that are available to a Unix program are marked by a bullet () in Table 6.1. Items marked with a “P” are specified by POSIX; double-check your system's version. (On Solaris, the versions in `/usr/xpg4/bin` accept these items.) Full descriptions are provided after the table.

#### Table 6.1. Unix Metacharacters

Symbol | ed | ex | vi | sed | awk | grep | egrep | Action
--- | --- | --- | --- | --- | --- | --- | --- | ---
`.` |  |  |  |  |  |  |  | Match any character.
`*` |  |  |  |  |  |  |  | Match zero or more preceding.
`^` |  |  |  |  |  |  |  | Match beginning of line/string.
`$` |  |  |  |  |  |  |  | Match end of line/string.
`\` |  |  |  |  |  |  |  | Escape following character.
`[ ]` |  |  |  |  |  |  |  | Match one from a set.
`\( \)` |  |  |  |  |  |  |  | Store pattern for later replay.[7]
`\``n` |  |  |  |  |  |  |  | Replay subpattern in match.
`{ }` |  |  |  |  | P |  | P | Match a range of instances.
`\{ \}` |  |  |  |  |  |  |  | Match a range of instances.
`\< \>` |  |  |  |  |  |  |  | Match word's beginning or end.
`+` |  |  |  |  |  |  |  | Match one or more preceding.
`?` |  |  |  |  |  |  |  | Match zero or one preceding.
`|` |  |  |  |  |  |  |  | Separate choices to match.
`( )` |  |  |  |  |  |  |  | Group expressions to match.

See Table 6-2.

Note that in `ed`, `ex`, `vi`, and `sed`, you specify both a search pattern (on the left) and a replacement pattern (on the right). The metacharacters in Table 6.1 are meaningful only in a search pattern.

In `ed`, `ex`, `vi`, and `sed`, the metacharacters in Table 6-2 are valid only in a replacement pattern.

#### Table 6.2. Metacharacters in Replacement Patterns

Symbol | ex | vi | sed | ed | Action
--- | --- | --- | --- | --- | ---
\ | • | • | • | • | Escape following character.
\n | • | • | • | • | Text matching pattern stored in \( \).
& | • | • | • | • | Text matching search pattern.
~ | • | • | & | & | Reuse previous replacement pattern.
% | & | & | & | • | Reuse previous replacement pattern.
\u \U | • | • | & | & | Change character(s) to uppercase.
\l \L | • | • | & | & | Change character(s) to lowercase.
\E | • | • | & | & | Turn off previous \U or \L.
\e | • | • | & | & | Turn off previous \u or \l.

Copyright © 2003 O'Reilly & Associates. All rights reserved.