aboutsummaryrefslogtreecommitdiffstats
path: root/man7
diff options
context:
space:
mode:
authorMichael Kerrisk <mtk.manpages@gmail.com>2008-06-09 21:03:52 +0000
committerMichael Kerrisk <mtk.manpages@gmail.com>2008-06-09 21:03:52 +0000
commit333a424b0ed691be51cc82a781822f8ae8b6fe16 (patch)
tree66134ce751230c21ec001822ed927c5ab1e1a688 /man7
parentce17c5d39108098ca881c499d6cef1138555001b (diff)
downloadman-pages-333a424b0ed691be51cc82a781822f8ae8b6fe16.tar.gz
Try and bring some consistency to quotes.
Diffstat (limited to 'man7')
-rw-r--r--man7/glob.780
-rw-r--r--man7/regex.7126
2 files changed, 105 insertions, 101 deletions
diff --git a/man7/glob.7 b/man7/glob.7
index 268e483792..75ad8c0062 100644
--- a/man7/glob.7
+++ b/man7/glob.7
@@ -38,64 +38,68 @@ that will perform this function for a user program.
The rules are as follows (POSIX.2, 3.13).
.SS "Wildcard Matching"
A string is a wildcard pattern if it contains one of the
-characters `?', `*' or `['.
+characters \(aq?\(aq, \(aq*\(aq or \(aq[\(aq.
Globbing is the operation
that expands a wildcard pattern into the list of pathnames
matching the pattern.
Matching is defined by:
-A `?' (not between brackets) matches any single character.
+A \(aq?\(aq (not between brackets) matches any single character.
-A `*' (not between brackets) matches any string,
+A \(aq*\(aq (not between brackets) matches any string,
including the empty string.
.PP
.B "Character classes"
.sp
-An expression `[...]' where the first character after the
-leading `[' is not an `!' matches a single character,
+An expression "\fI[...]\fP" where the first character after the
+leading \(aq[\(aq is not an \(aq!\(aq matches a single character,
namely any of the characters enclosed by the brackets.
The string enclosed by the brackets cannot be empty;
-therefore `]' can be allowed between the brackets, provided
+therefore \(aq]\(aq can be allowed between the brackets, provided
that it is the first character.
-(Thus, `[][!]' matches the three characters `[', `]' and `!'.)
+(Thus, "\fI[][!]\fP" matches the
+three characters \(aq[\(aq, \(aq]\(aq and \(aq!\(aq.)
.PP
.B Ranges
.sp
There is one special convention:
-two characters separated by `\-' denote a range.
-(Thus, `[A\-Fa\-f0\-9]' is equivalent to `[ABCDEFabcdef0123456789]'.)
-One may include `\-' in its literal meaning by making it the
+two characters separated by \(aq\-\(aq denote a range.
+(Thus, "\fI[A\-Fa\-f0\-9]\fP" is equivalent to "\fI[ABCDEFabcdef0123456789]\fP".)
+One may include \(aq\-\(aq in its literal meaning by making it the
first or last character between the brackets.
-(Thus, `[]\-]' matches just the two characters `]' and `\-',
-and `[\-\-0]' matches the three characters `\-', `.', `0', since `/'
+(Thus, "\fI[]\-]\fP" matches just the two characters \(aq]\(aq and \(aq\-\(aq,
+and "\fI[\-\-0]\fP" matches the
+three characters \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq, since \(aq/\(aq
cannot be matched.)
.PP
.B Complementation
.sp
-An expression `[!...]' matches a single character, namely
+An expression "\fI[!...]\fP" matches a single character, namely
any character that is not matched by the expression obtained
-by removing the first `!' from it.
-(Thus, `[!]a\-]' matches any single character except `]', `a' and `\-'.)
+by removing the first \(aq!\(aq from it.
+(Thus, "\fI[!]a\-]\fP" matches any
+single character except \(aq]\(aq, \(aqa\(aq and \(aq\-\(aq.)
-One can remove the special meaning of `?', `*' and `[' by
+One can remove the special meaning of \(aq?\(aq, \(aq*\(aq and \(aq[\(aq by
preceding them by a backslash, or, in case this is part of
a shell command line, enclosing them in quotes.
Between brackets these characters stand for themselves.
-Thus, `[[?*\e]' matches the four characters `[', `?', `*' and `\e'.
+Thus, "\fI[[?*\e]\fP" matches the
+four characters \(aq[\(aq, \(aq?\(aq, \(aq*\(aq and \(aq\e\(aq.
.SS Pathnames
Globbing is applied on each of the components of a pathname
separately.
-A `/' in a pathname cannot be matched by a `?' or `*'
-wildcard, or by a range like `[.\-0]'.
+A \(aq/\(aq in a pathname cannot be matched by a \(aq?\(aq or \(aq*\(aq
+wildcard, or by a range like "\fI[.\-0]\fP".
A range cannot contain an
-explicit `/' character; this would lead to a syntax error.
+explicit \(aq/\(aq character; this would lead to a syntax error.
-If a filename starts with a `.', this character must be matched explicitly.
-(Thus, `rm *' will not remove .profile, and `tar c *' will not
-archive all your files; `tar c .' is better.)
+If a filename starts with a \(aq.\(aq, this character must be matched explicitly.
+(Thus, \fIrm\ *\fP will not remove .profile, and \fItar\ c\ *\fP will not
+archive all your files; \fItar\ c\ .\fP is better.)
.SS "Empty Lists"
-The nice and simple rule given above: `expand a wildcard pattern
-into the list of matching pathnames' was the original Unix
+The nice and simple rule given above: "expand a wildcard pattern
+into the list of matching pathnames" was the original Unix
definition.
It allowed one to have patterns that expand into
an empty list, as in
@@ -133,15 +137,15 @@ Note that wildcard patterns are not regular expressions,
although they are a bit similar.
First of all, they match
filenames, rather than text, and secondly, the conventions
-are not the same: for example, in a regular expression `*' means zero or
+are not the same: for example, in a regular expression \(aq*\(aq means zero or
more copies of the preceding thing.
Now that regular expressions have bracket expressions where
-the negation is indicated by a `^', POSIX has declared the
-effect of a wildcard pattern `[^...]' to be undefined.
+the negation is indicated by a \(aq^\(aq, POSIX has declared the
+effect of a wildcard pattern "\fI[^...]\fP" to be undefined.
.SS Character classes and Internationalization
Of course ranges were originally meant to be ASCII ranges,
-so that `[\ \-%]' stands for `[\ !"#$%]' and `[a\-z]' stands
+so that "\fI[\ \-%]\fP" stands for "\fI[\ !"#$%]\fP" and "\fI[a\-z]\fP" stands
for "any lowercase letter".
Some Unix implementations generalized this so that a range X\-Y
stands for the set of characters with code between the codes for
@@ -172,29 +176,29 @@ category in the current locale.
[:punct:] [:space:] [:upper:] [:xdigit:]
.fi
-so that one can say `[[:lower:]]' instead of `[a\-z]', and have
-things work in Denmark, too, where there are three letters past `z'
+so that one can say "\fI[[:lower:]]\fP" instead of "\fI[a\-z]\fP", and have
+things work in Denmark, too, where there are three letters past \(aqz\(aq
in the alphabet.
These character classes are defined by the
.B LC_CTYPE
category
in the current locale.
-(v) Collating symbols, like `[.ch.]' or `[.a-acute.]',
-where the string between `[.' and `.]' is a collating
+(v) Collating symbols, like "\fI[.ch.]\fP" or "\fI[.a-acute.]\fP",
+where the string between "\fI[.\fP" and "\fI.]\fP" is a collating
element defined for the current locale.
Note that this may
be a multi-character element.
-(vi) Equivalence class expressions, like `[=a=]',
-where the string between `[=' and `=]' is any collating
+(vi) Equivalence class expressions, like "\fI[=a=]\fP",
+where the string between "\fI[=\fP" and "\fI=]\fP" is any collating
element from its equivalence class, as defined for the
current locale.
-For example, `[[=a=]]' might be equivalent
+For example, "\fI[[=a=]]\fP" might be equivalent
.\" FIXME . the accented 'a' characters are not rendering properly
.\" mtk May 2007
-to `[a����]' (warning: Latin-1 here), that is,
-to `[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]'.
+to "\fI[a����]\fP" (warning: Latin-1 here), that is,
+to "\fI[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]\fP".
.SH "SEE ALSO"
.BR sh (1),
.BR fnmatch (3),
diff --git a/man7/regex.7 b/man7/regex.7
index 644a0c8a93..440cbde92b 100644
--- a/man7/regex.7
+++ b/man7/regex.7
@@ -47,26 +47,26 @@ POSIX.2 "basic" REs).
Obsolete REs mostly exist for backward compatibility in some old programs;
they will be discussed at the end.
POSIX.2 leaves some aspects of RE syntax and semantics open;
-`\*(dg' marks decisions on these aspects that
+"\*(dg" marks decisions on these aspects that
may not be fully portable to other POSIX.2 implementations.
.PP
A (modern) RE is one\*(dg or more non-empty\*(dg \fIbranches\fR,
-separated by `|'.
+separated by \(aq|\(aq.
It matches anything that matches one of the branches.
.PP
A branch is one\*(dg or more \fIpieces\fR, concatenated.
It matches a match for the first, followed by a match for the second, etc.
.PP
A piece is an \fIatom\fR possibly followed
-by a single\*(dg `*', `+', `?', or \fIbound\fR.
-An atom followed by `*' matches a sequence of 0 or more matches of the atom.
-An atom followed by `+' matches a sequence of 1 or more matches of the atom.
-An atom followed by `?' matches a sequence of 0 or 1 matches of the atom.
+by a single\*(dg \(aq*\(aq, \(aq+\(aq, \(aq?\(aq, or \fIbound\fR.
+An atom followed by \(aq*\(aq matches a sequence of 0 or more matches of the atom.
+An atom followed by \(aq+\(aq matches a sequence of 1 or more matches of the atom.
+An atom followed by \(aq?\(aq matches a sequence of 0 or 1 matches of the atom.
.PP
-A \fIbound\fR is `{' followed by an unsigned decimal integer,
-possibly followed by `,'
+A \fIbound\fR is \(aq{\(aq followed by an unsigned decimal integer,
+possibly followed by \(aq,\(aq
possibly followed by another unsigned decimal integer,
-always followed by `}'.
+always followed by \(aq}\(aq.
The integers must lie between 0 and
.B RE_DUP_MAX
(255\*(dg) inclusive,
@@ -81,71 +81,71 @@ An atom followed by a bound
containing two integers \fIi\fR and \fIj\fR matches
a sequence of \fIi\fR through \fIj\fR (inclusive) matches of the atom.
.PP
-An atom is a regular expression enclosed in `()' (matching a match for the
+An atom is a regular expression enclosed in "\fI()\fP" (matching a match for the
regular expression),
-an empty set of `()' (matching the null string)\*(dg,
-a \fIbracket expression\fR (see below), `.'
-(matching any single character), `^' (matching the null string at the
-beginning of a line), `$' (matching the null string at the
-end of a line), a `\e' followed by one of the characters
-`^.[$()|*+?{\e'
+an empty set of "\fI()\fP" (matching the null string)\*(dg,
+a \fIbracket expression\fR (see below), \(aq.\(aq
+(matching any single character), \(aq^\(aq (matching the null string at the
+beginning of a line), \(aq$\(aq (matching the null string at the
+end of a line), a \(aq\e\(aq followed by one of the characters
+"\fI^.[$()|*+?{\e\fP"
(matching that character taken as an ordinary character),
-a `\e' followed by any other character\*(dg
+a \(aq\e\(aq followed by any other character\*(dg
(matching that character taken as an ordinary character,
-as if the `\e' had not been present\*(dg),
+as if the \(aq\e\(aq had not been present\*(dg),
or a single character with no other significance (matching that character).
-A `{' followed by a character other than a digit is an ordinary
+A \(aq{\(aq followed by a character other than a digit is an ordinary
character, not the beginning of a bound\*(dg.
-It is illegal to end an RE with `\e'.
+It is illegal to end an RE with \(aq\e\(aq.
.PP
-A \fIbracket expression\fR is a list of characters enclosed in `[]'.
+A \fIbracket expression\fR is a list of characters enclosed in "\fI[]\fP".
It normally matches any single character from the list (but see below).
-If the list begins with `^',
+If the list begins with \(aq^\(aq,
it matches any single character
(but see below) \fInot\fR from the rest of the list.
-If two characters in the list are separated by `\-', this is shorthand
+If two characters in the list are separated by \(aq\-\(aq, this is shorthand
for the full \fIrange\fR of characters between those two (inclusive) in the
collating sequence,
-for example, `[0\-9]' in ASCII matches any decimal digit.
+for example, "\fI[0\-9]\fP" in ASCII matches any decimal digit.
It is illegal\*(dg for two ranges to share an
-endpoint, for example, `a-c-e'.
+endpoint, for example, "\fIa-c-e\fP".
Ranges are very collating-sequence-dependent,
and portable programs should avoid relying on them.
.PP
-To include a literal `]' in the list, make it the first character
-(following a possible `^').
-To include a literal `\-', make it the first or last character,
+To include a literal \(aq]\(aq in the list, make it the first character
+(following a possible \(aq^\(aq).
+To include a literal \(aq\-\(aq, make it the first or last character,
or the second endpoint of a range.
-To use a literal `\-' as the first endpoint of a range,
-enclose it in `[.' and `.]' to make it a collating element (see below).
-With the exception of these and some combinations using `[' (see next
-paragraphs), all other special characters, including `\e', lose their
+To use a literal \(aq\-\(aq as the first endpoint of a range,
+enclose it in "\fI[.\fP" and "\fI.]\fP" to make it a collating element (see below).
+With the exception of these and some combinations using \(aq[\(aq (see next
+paragraphs), all other special characters, including \(aq\e\(aq, lose their
special significance within a bracket expression.
.PP
Within a bracket expression, a collating element (a character,
a multi-character sequence that collates as if it were a single character,
or a collating-sequence name for either)
-enclosed in `[.' and `.]' stands for the
+enclosed in "\fI[.\fP" and "\fI.]\fP" stands for the
sequence of characters of that collating element.
The sequence is a single element of the bracket expression's list.
A bracket expression containing a multi-character collating element
can thus match more than one character,
-for example, if the collating sequence includes a `ch' collating element,
-then the RE `[[.ch.]]*c' matches the first five characters
-of `chchcc'.
+for example, if the collating sequence includes a "ch" collating element,
+then the RE "\fI[[.ch.]]*c\fP" matches the first five characters
+of "chchcc".
.PP
-Within a bracket expression, a collating element enclosed in `[=' and
-`=]' is an equivalence class, standing for the sequences of characters
+Within a bracket expression, a collating element enclosed in "\fI[=\fP" and
+"\fI=]\fP" is an equivalence class, standing for the sequences of characters
of all collating elements equivalent to that one, including itself.
(If there are no other equivalent collating elements,
-the treatment is as if the enclosing delimiters were `[.' and `.]'.)
+the treatment is as if the enclosing delimiters were "\fI[.\fP" and "\fI.]\fP".)
For example, if o and \o'o^' are the members of an equivalence class,
-then `[[=o=]]', `[[=\o'o^'=]]', and `[o\o'o^']' are all synonymous.
+then "\fI[[=o=]]\fP", "\fI[[=\o'o^'=]]\fP", and "\fI[o\o'o^']\fP" are all synonymous.
An equivalence class may not\*(dg be an endpoint
of a range.
.PP
Within a bracket expression, the name of a \fIcharacter class\fR enclosed
-in `[:' and `:]' stands for the list of all characters belonging to that
+in "\fI[:\fP" and "\fI:]\fP" stands for the list of all characters belonging to that
class.
Standard character class names are:
.PP
@@ -167,7 +167,7 @@ A character class may not be used as an endpoint of a range.
.\" The following does not seem to apply in the glibc implementation
.\" .PP
.\" There are two special cases\*(dg of bracket expressions:
-.\" the bracket expressions `[[:<:]]' and `[[:>:]]' match the null string at
+.\" the bracket expressions "\fI[[:<:]]\fP" and "\fI[[:>:]]\fP" match the null string at
.\" the beginning and end of a word respectively.
.\" A word is defined as a sequence of
.\" word characters
@@ -198,11 +198,11 @@ their lower-level component subexpressions.
Match lengths are measured in characters, not collating elements.
A null string is considered longer than no match at all.
For example,
-`bb*' matches the three middle characters of `abbbc',
-`(wee|week)(knights|nights)' matches all ten characters of `weeknights',
-when `(.*).*' is matched against `abc' the parenthesized subexpression
+"\fIbb*\fP" matches the three middle characters of "abbbc",
+"\fI(wee|week)(knights|nights)\fP" matches all ten characters of "weeknights",
+when "\fI(.*).*\fP" is matched against "abc" the parenthesized subexpression
matches all three characters, and
-when `(a*)*' is matched against `bc' both the whole RE and the parenthesized
+when "\fI(a*)*\fP" is matched against "bc" both the whole RE and the parenthesized
subexpression match the null string.
.PP
If case-independent matching is specified,
@@ -211,10 +211,10 @@ alphabet.
When an alphabetic that exists in multiple cases appears as an
ordinary character outside a bracket expression, it is effectively
transformed into a bracket expression containing both cases,
-for example, `x' becomes `[xX]'.
+for example, \(aqx\(aq becomes "\fI[xX]\fP".
When it appears inside a bracket expression, all case counterparts
-of it are added to the bracket expression, so that, for example, `[x]'
-becomes `[xX]' and `[^x]' becomes `[^xX]'.
+of it are added to the bracket expression, so that, for example, "\fI[x]\fP"
+becomes "\fI[xX]\fP" and "\fI[^x]\fP" becomes "\fI[^xX]\fP".
.PP
No particular limit is imposed on the length of REs\*(dg.
Programs intended to be portable should not employ REs longer
@@ -223,32 +223,32 @@ as an implementation can refuse to accept such REs and remain
POSIX-compliant.
.PP
Obsolete ("basic") regular expressions differ in several respects.
-`|', `+', and `?' are ordinary characters and there is no equivalent
+\(aq|\(aq, \(aq+\(aq, and \(aq?\(aq are ordinary characters and there is no equivalent
for their functionality.
-The delimiters for bounds are `\e{' and `\e}',
-with `{' and `}' by themselves ordinary characters.
-The parentheses for nested subexpressions are `\e(' and `\e)',
-with `(' and `)' by themselves ordinary characters.
-`^' is an ordinary character except at the beginning of the
+The delimiters for bounds are "\fI\e{\fP" and "\fI\e}\fP",
+with \(aq{\(aq and \(aq}\(aq by themselves ordinary characters.
+The parentheses for nested subexpressions are "\fI\e(\fP" and "\fI\e)\fP",
+with \(aq(\(aq and \(aq)\(aq by themselves ordinary characters.
+\(aq^\(aq is an ordinary character except at the beginning of the
RE or\*(dg the beginning of a parenthesized subexpression,
-`$' is an ordinary character except at the end of the
+\(aq$\(aq is an ordinary character except at the end of the
RE or\*(dg the end of a parenthesized subexpression,
-and `*' is an ordinary character if it appears at the beginning of the
+and \(aq*\(aq is an ordinary character if it appears at the beginning of the
RE or the beginning of a parenthesized subexpression
-(after a possible leading `^').
+(after a possible leading \(aq^\(aq).
.PP
Finally, there is one new type of atom, a \fIback reference\fR:
-`\e' followed by a non-zero decimal digit \fId\fR
+\(aq\e\(aq followed by a non-zero decimal digit \fId\fR
matches the same sequence of characters
matched by the \fId\fRth parenthesized subexpression
(numbering subexpressions by the positions of their opening parentheses,
left to right),
-so that, for example, `\e([bc]\e)\e1' matches `bb' or `cc' but not `bc'.
+so that, for example, "\fI\e([bc]\e)\e1\fP" matches "bb" or "cc" but not "bc".
.SH BUGS
Having two kinds of REs is a botch.
.PP
-The current POSIX.2 spec says that `)' is an ordinary character in
-the absence of an unmatched `(';
+The current POSIX.2 spec says that \(aq)\(aq is an ordinary character in
+the absence of an unmatched \(aq(\(aq;
this was an unintentional result of a wording error,
and change is likely.
Avoid relying on it.
@@ -257,7 +257,7 @@ Back references are a dreadful botch,
posing major problems for efficient implementations.
They are also somewhat vaguely defined
(does
-`a\e(\e(b\e)*\e2\e)*d' match `abbbd'?).
+"\fIa\e(\e(b\e)*\e2\e)*d\fP" match "abbbd"?).
Avoid using them.
.PP
POSIX.2's specification of case-independent matching is vague.