dbmedit -- edit the MMDF database file


/usr/bin/dbmedit [ -v ] [ -ddatabase ] [ cmd ... ]


The dbmedit command lets you edit the dbm(S) database used by MMDF. Use this command for quick and simple changes to the database or with careful use of setuid programs to make controlled changes on behalf of users. For example, a forwardmail command (that you create) might use dbmedit to change a user's entry in the dbm database after changing the mail forwarding alias file.

The -v option may be used to get a verbose description of the program's activities.

The -d option may be used to specify an alternate database. The default is given by the tbldbm configuration variable or by the MDBM parameter in the mmdftailor(F) file.

If no arguments are given to dbmedit, then the program goes into an interactive mode, and prompts the user for each command. Otherwise the arguments are taken as one command.

Commands in dbmedit refer to tables, keys, and values. Tables (see tables(F)) are hashed into the database using dbmbuild(ADM). (Tables that refer to domain name servers are not part of the database.) The keys appear on the left side of the tables and the values on the right side. In general, only the first occurrence of a value for a given key/table pair is significant. For example, the table entries:

table1: key1: val1
key2: val2

table2: key1: val3
key1: val4

get hashed into the following database entries:

key1 table1 val1
key1 table2 val3
key1 table2 val4
key2 table1 val2

In the current implementation, the database is keyed on only the key, and table/value pairs are encoded in the data portion. This is likely to change but will not affect this or any other program.

The command lines in interactive mode are parsed using the standard MMDF string-to-argument routines so the same quoting and escape conventions are used. For example, if you want double-quotes or spaces in the value, they must be escaped with a backslash or the string must be quoted (for spaces).

The commands are:

print key [ table ]
Print the value of the key/table pair. If the table is omitted, then print the value of any table entry with this key.

add key tablevalue
Add a key/table entry with the given value. In verbose mode, a warning message is printed if the given key/table pair already has a value in the database.

delete key [ table [ value ]]
Delete the values for the specified key. If a table is specified, delete only the values for the specified key/table pair. If a value is also specified, delete only entries for the pair with that value. It is an error to try to delete something which does not appear in the database as specified.

change key table [ oldvalue ] newvalue
Change the value of the specified key/table pair to newvalue. If oldvalue is specified, change the entry matching that value. Otherwise, change the value of the first occurrence or add a new key/table pair if none already exists.

Give a brief summary of the commands.

Exit the program.

All commands may be shortened to their first character only. If the wrong number of arguments is given to a command, a ``Usage:'' message is displayed. This program may be used while MMDF processes are running.

NOTE: All changes are made in real time; no temporary copy of the database is made while editing takes place.


$(tbldbm).{dir,pag} the MMDF database

See also

dbm(S), dbmbuild(ADM), mmdftailor(F), tables(F)

Standards conformance

MMDF is not part of any currently supported standard; it was developed at the University of Delaware and is used with permission.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003