Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

WILDCARDS                           Aegis                            WILDCARDS



NAME
     wildcards - summary of shell wildcard syntax and usage

DESCRIPTION
     Wildcards are text strings which provide a shorthand way to represent one
     or more existing naming server pathnames.  Regular expressions are used
     in place of directory entry names to specify which names at the
     corresponding point in the naming tree will match.  (For a description of
     regular expression construction, type help patterns.)  One or more
     regular expressions, optionally preceded by "/", "//", "~", or ".", and
     separated by "/" or "\", form a wildcard.


DIFFERENCES FROM DM REGULAR EXPRESSIONS
     The regular expressions used in wildcards deviate slightly from those
     used in the Display Manager.  These deviations are:

          1. Each regular expression is assumed to be preceded by "%" (the
             beginning-of-line character) and followed by a "$" (the end-of-
             line character). These characters may NOT be supplied explicitly.
             (N.B.  Were it not for this deviation, the wildcard name "?"
             would match any name, instead of only 1-character names.)

          2. When "%" is found in a wildcard, it is replaced by the regular
             expression "[~.]*", which means 'all characters up to but not
             including the next period'.  This introduces the notion of
             "components" within entry names, where a component is a character
             string which is delimited by periods or either end of the name.
             "%" will match zero or more characters.

     The symbol "..." (ellipses) may be used in place of an entry name to
     indicate that any number of directory names (including zero) may appear
     in its place.  For each directory which satisfies the portion of the
     wildcard to the left of the ellipses, it and all subdirectories are
     searched for entries which satisfy the portion of the wildcard to the
     right of the ellipses.  Ellipses may appear any number of times in a
     wildcard.


EXAMPLES
     Examples of wildcards are:

     zork                "zork", contained in the working directory.

     z?*                 all names which begin with "z", contained in the
                         working directory.

     /fred/?*            all names contained in the directory "/fred"

     /...                all names contained in "/" and all directories
                         thereunder (includes the name "/")

     /?*/...             same as above, but excludes the name "/"

     /.../curmudgeon.%   all 2 component names whose first component is
                         "curmudgeon", anywhere under the "/" directory

     //lang/.../?*.bak   all names under the "//lang" directory which end in
                         ".bak"

     all names under the working directory

     ~[a-m]?*/?*.ftn     all names which end in ".ftn" contained in
                         directories whose names start with the characters 'a'
                         thru 'm', under the naming directory


DERIVED NAMES
     Some commands accept two or more names which are logically related.
     These commands include chn (change_name)- from and to names; cpf
     (copy_file) - source and destination; cmt (compare_tree) - names of the
     two trees being compared; and others.  The second (and subsequent) names
     are called "derived names", because they may be syntactically derived
     from the first name.  The syntax for derived names is similar to that
     used in the right-hand side of a Display Manager or es "substitute"
     operation, with the exception that the ampersand ("&") character is
     replaced by an equal-sign ("=").  (A word of explanation:  The shell uses
     the "&" to signify that this command is to be executed in another
     process.  This makes the ampersand unavailable.)


EXAMPLES
     Examples of derived name usage are:


     chn ziggy.pas =.old renames "ziggy.pas" to "ziggy.pas.old"

     cpf /{?*.pas} /src/@1
                         copies all files with the suffix ".pas" in the root
                         directory to the "/src" directory,renames "ziggy.pas"
                         to "ziggy.pas.old" preserving their leaf names

     chn {frank.pas}.bak @1
                         renames "frank.pas.bak" to "frank.pas".

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026