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
returnstrue
(see ctype.h).[:alpha:]
Characters for which
isalpha
returnstrue
(see ctype.h).[:cntrl:]
Characters for which
iscntrl
returnstrue
(see ctype.h).[:digit:]
Characters for which
isdigit
returnstrue
(see ctype.h).[:graph:]
Characters for which
isgraph
returnstrue
(see ctype.h).[:lower:]
Characters for which
islower
returnstrue
(see ctype.h).[:print:]
Characters for which
isprint
returnstrue
(see ctype.h).[:punct:]
Characters for which
ispunct
returnstrue
(see ctype.h).[:space:]
Characters for which
isspace
returnstrue
(see ctype.h).[:upper:]
Characters for which
isupper
returnstrue
(see ctype.h).[:xdigit:]
Characters for which
isxdigit
returnstrue
(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.