Metacharacters, Listed by Linux Program
Some metacharacters are valid for one program but not for another. Those that are available to a given program are marked by a bullet () in the following table. Notes are provided after the table, and full descriptions of metacharacters are in the following section.
Symbol | ed | vi | sed | awk | grep | egrep | Action |
---|---|---|---|---|---|---|---|
.
| ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Match any character (can match newline in gawk). |
*
| ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Match zero or more preceding. |
^
| ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Match beginning of line or string. |
$
| ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Match end of line or string. |
\
| ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Escape character following. |
[]
| ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Match one from a list or range. |
\(\)
| ![]() | ![]() | ![]() | Store pattern for later replay. | |||
\ n
| ![]() | ![]() | ![]() | Reuse matched text stored in nth \( \). | |||
{}
| ![]() | 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. |
On some Linux systems, grep is a link to egrep, so whenever you run grep you actually get egrep behavior.
In ed, vi, and sed, when you perform a search-and-replace (substitute) operation, the metacharacters in this table apply to the pattern you are searching for but not to the string replacing it.
In awk, {} is specified in the POSIX standard and is supported by gawk if you run it with the -Wre-interval option.
In ed, vi, and sed, the following additional metacharacters are valid only in a replacement pattern:
Symbol | ex | sed | ed | Action |
\
| ![]() | ![]() | ![]() | Escape character following. |
\ n
| ![]() | ![]() | ![]() | Reuse matched text stored in nth \( \). |
&
| ![]() | ![]() | Reuse previous search pattern. | |
~
| ![]() | Reuse previous replacement pattern. | ||
\e
| ![]() | Turn off previous L or U. | ||
\E
| ![]() | Turn off previous /L or /U. | ||
\l
| ![]() | Change single following character to lowercase. | ||
\L
| ![]() | Change following characters to lowercase until /E encountered. | ||
\u
| ![]() | Change single following character to uppercase. | ||
\U
| ![]() | Change following characters to uppercase until E encountered. |