Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


DB(1)                       General Commands Manual                      DB(1)

NAME
     db - manipulate db(3)'s btree(3) and hash(3) databases

SYNOPSIS
     db [-DKiNqV] [-E endian] [-f infile] [-O outsep] [-S visitem]
        [-T visspec] [-U unvisitem] [-X extravis] type dbfile [key [...]]
     db -d [-iNq] [-E endian] [-f infile] [-T visspec] [-U unvisitem] type
        dbfile [key [...]]
     db -w [-CDiNqR] [-E endian] [-F insep] [-f infile] [-m mode]
        [-P pagesize] [-T visspec] [-U unvisitem] type dbfile
        [key value [...]]

DESCRIPTION
     db allows manipulation of btree(3) and hash(3) (db(3)) databases.

     db has three modes of operation to perform upon dbfile:

           read    Displays the given keys, and keys described in infile.  If
                   no keys and no infile is specified, the entire database is
                   displayed.  This is the default mode of operation.

           delete  Enabled with -d.  Deletes the given keys, and keys
                   described in infile.

           write   Enabled with -w.  Writes the given keys and values, and
                   keys and values described in infile (in the latter case,
                   entries are separated by insep).

     There are two mandatory arguments: type is the database type; either
     `btree' or `hash', and dbfile is the database file to manipulate.

     Options valid for all modes are:

           -E endian   Set the endianness of the database.  endian may be one
                       of:
                             B  Big endian
                             H  Host endian
                             L  Little endian
                       Defaults to `H' (host endian).

           -f infile   Contains a list of keys (for read and delete), or insep
                       separated keys and values (for write) to be used as
                       arguments to the given mode.  If infile is `-', stdin
                       is used.

           -i          Keys are converted to lower case before manipulation.

           -N          Include the NUL byte at the end of the key or value.

                       By convention, each key and value in the underlying
                       database is terminated with a NUL byte, although it is
                       possible to have keys or values that are not so
                       terminated.  Without the -N option, db adds a NUL
                       terminator to any keys and values specified on the
                       command line or in the input file, before searching or
                       modifying the underlying database, and removes the last
                       byte (which is usually a NUL terminator) before
                       printing any keys and values retrieved from the
                       underlying database.  With the -N option, db does not
                       add or remove a terminating byte.  The -S, -T, and -U
                       options may be useful to encode the NUL terminator in a
                       readable form.

           -q          Quiet operation.  In read mode, missing keys are
                       considered to be an error.  In delete (-d) and write
                       (-w) modes, the result of various operations is
                       suppressed.

           -T visspec  Control how the items specified by the -S option are
                       encoded and -U option are decoded.  The visspec option-
                       argument is a string specifying strsvisx(3) flags.  The
                       string consists of one or more characters:
                             b   VIS_NOSLASH
                             c   VIS_CSTYLE.  Overrides h and o.
                             h   VIS_HTTPSTYLE.  Overrides c and o.
                             o   VIS_OCTAL.  Overrides c and h.
                             s   VIS_SAFE
                             t   VIS_TAB
                             w   VIS_WHITE

                       -U only supports -T h.

                       See vis(1)'s corresponding options for the meaning of
                       these characters, and strsvisx(3) for more detail on
                       the flags.

           -U unvisitem
                       Specify items to strunvisx(3) decode.  The unvisitem
                       option-argument is a character specifying if the key
                       (k), the value (v) or both (b) should be decoded.

     Read mode specific options are:

           -D          Display duplicate entries in btree databases.

           -K          Display key.

           -O outsep   Field separator string between key and value.  Defaults
                       to a single tab (`\t').

           -S visitem  Specify items to strsvisx(3) encode.  The visitem
                       option-argument is a character specifying if the key
                       (k), the value (v) or both (b) should be encoded.

           -V          Display value.

           -X extravis
                       When encoding items with -S option also encode
                       characters in extravis, per strsvisx(3).

           (If neither of -K or -V is given, both options are enabled.)

     Write mode specific options are:

           -C          Create new database, and truncate existing databases.

           -D          Allow duplicate entries in btree databases.  (Requires
                       -R to be useful.)

           -F insep    Input field separator string between key and value used
                       when parsing infile.  Defaults to a single space (` ').

           -m mode     Octal mode of created database.  Defaults to `0644'.

           -P pagesize
                       Set the page size of the table to pagesize bytes.  If
                       set to `0', a database-specific default is determined,
                       based on the block-size of the underlying file-system.
                       Defaults to `4096'.

           -R          Overwrite existing entries.  If not specified, writing
                       to an existing entry raises an error.

SEE ALSO
     vis(1), btree(3), db(3), hash(3), strsvisx(3), strunvisx(3)

HISTORY
     The db command appeared in NetBSD 2.0.

AUTHORS
     Luke Mewburn <lukem@NetBSD.org>.

NetBSD 10.99                   February 17, 2012                  NetBSD 10.99