ATTRDB(6)                                               ATTRDB(6)

     NAME
          attrdb - data base of attribute-value pairs

     DESCRIPTION
          An attribute data base is formed from one or more text
          files, each containing groups of related attribute-value
          pairs.  A given data base typically stores data relating to
          a single logical domain.  For instance, Inferno uses an
          attribute data base ndb(6) to organise network configuration
          data.  Attrdb(2) is typically used by applications to search
          the data.

          Each entry in the data base consists of one or more lines
          containing attribute/value pairs, separated by white space.
          The first line of an entry starts a line; subsequent lines
          in the entry are preceded by white space (spaces or tabs).
          Pairs on the same line bind tighter together than others in
          the same entry.  (This is important when one known pair is
          used to find another by attribute name.)  The character `#'
          causes the rest of the line to be ignored (eg, as commen-
          tary).  Empty lines are also ignored.

          Attribute/value pairs are written as attribute=value, which
          can be abbreviated to attribute= or simply attribute if the
          attribute has no value.  A value that contains white space,
          or any of the characters #'"= must be quoted, using either
          the single or double quote character.  Within a quoted
          string, two adjacent quotes can be written to enter a quote
          in the string.  For example:

               name='Paul Wilson' business company='Fruitbat Villas Ltd'
                  title='Key Grip'
                  address='39 Willis Street, York' tel='+44 1904 20927'
                  address='On the road' tel='+44 7904 169 704'
               name='James Mason' personal=
                  address='10 St James''s, East Grinstead' tel='01342 7674'

          Note that the binding rule associates each address in the
          first entry most closely with the tel on the same line.  The
          attributes business (first entry) and personal (second
          entry) are both attributes without value.

          A single logical data base can be formed by concatenating
          several physical files, each having the format above.  One
          of the files must contain an entry (typically first in the
          file) containing a database attribute and a sequence of
          attributes of the form file=filename.  For example:

               database=
                  file=file1

     Page 1                       Plan 9            (printed 12/23/24)

     ATTRDB(6)                                               ATTRDB(6)

                  file=file2
                  file=file3

          The logical database is formed by (logically) concatenating
          the contents of each filename in the order listed (ie,
          file1, file2, and file3 above).  Typically the file contain-
          ing the database attribute appears in the list as well, at
          the point where its contents should go; if it does not
          appear at all, it is assumed to be first.  The name of that
          file is also used as the name of the logical database, for
          instance when opened by attrdb(2).

     SEE ALSO
          cfg(2), attrdb(2), ipattr(2), ndb(6), cs(8), dns(8)

     Page 2                       Plan 9            (printed 12/23/24)