Character Sets for Egrep and ZSH_FILEGLOB

A character set starts with [ and ends at non-escaped ] that is not part of a POSIX character set specifier and that does not follow immediately after [.

The following characters have a special meaning and need to be escaped if meant literally:

- (minus sign)

A range operator, except immediately after [ where it loses its special meaning.

^ or ! (latter applies to ZSH_FILEGLOB)

If immediately after the starting [, denotes a complement: the whole character set will be complemented. Otherwise, literal.

[:alnum:]

Characters for which isalnum returns true (see ctype.h).

[:alpha:]

Characters for which isalpha returns true (see ctype.h).

[:cntrl:]

Characters for which iscntrl returns true (see ctype.h).

[:digit:]

Characters for which isdigit returns true (see ctype.h).

[:graph:]

Characters for which isgraph returns true (see ctype.h).

[:lower:]

Characters for which islower returns true (see ctype.h).

[:print:]

Characters for which isprint returns true (see ctype.h).

[:punct:]

Characters for which ispunct returns true (see ctype.h).

[:space:]

Characters for which isspace returns true (see ctype.h).

[:upper:]

Characters for which isupper returns true (see ctype.h).

[:xdigit:]

Characters for which isxdigit returns true (see ctype.h).

Example

    [[:xdigit:]XY]

is typically equivalent to:

    [0123456789ABCDEFabcdefXY] .

It is also possible to include the predefined escaped character sets into a newly defined one, so:

    [\d\s]

matches digits and whitespace characters.

Get SSH, The Secure Shell: The Definitive Guide, 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.