1 .TH DBZ 1 "11 Feb 1992"
4 dbz \- operate on dbz databases of text
26 is a shell-level interface to the
28 database routines for indexed access to a text file.
32 file must be a text file,
33 one line per database record,
34 with the key the first field on the line.
37 option sets the field-separator character; the default is tab.
38 Setting the separator character to NUL (with
40 makes the whole line the key.
41 Lines must not exceed 1023 bytes in length including the newline;
42 this limit can be increased with the
45 The limitations and restrictions of
47 must also be observed;
48 in particular, it remains the user's responsibility to ensure that
49 no attempt is made to store two entries (whether identical or not)
52 In the absence of options,
56 index for the database;
57 the index comprises files
61 in the same directory.
62 Any previous index is silently overwritten.
69 options specify other operations.
74 appends lines from the
76 (standard input if none)
77 to the database, updating both the
78 text file and the indexes.
85 (standard input if none)
86 and prints (on standard output) the corresponding lines, if any,
88 The input is in the form of database lines, although only the keys are
94 print the input lines whose keys are found instead of the database
95 lines; this is somewhat faster.
99 operation is the same as for
101 except that the keys which are \fInot\fR present in the database are printed.
106 checks the database for internal consistency.
109 option causes this check to be done more quickly but less thoroughly
110 (each key is looked up in the index, but no check is made to be sure
111 that the index entry points to the right place).
115 option suppresses the use of
119 This makes accesses slower, but keeps the files current
122 startup/shutdown overhead.
126 checks whether a key is already in the database before adding it.
129 option suppresses this check, speeding things up at the expense of safety.
131 A new index is normally created with default size,
132 case mapping, and tagging.
133 The default size is right for 90-100,000 records.
134 The default case mapping is right for RFC822 message-ids.
137 for what tagging is about.
138 (Note, these defaults can be changed when
145 size, case mapping, and tagging
146 are instead initialized based on the
149 This is mostly useful when
150 creating a new generation of an existing database.
151 (See the description of
161 string specifies the size, case mapping, and tagging.
164 is a single decimal number,
165 that is taken as the expected number of records
166 in the index, with case mapping and tagging defaulted.
169 can be three fields\(ema decimal number, a case-mapping code character, and a
170 hexadecimal tag mask\(emseparated by white space.
171 The decimal number is, again, the expected number of records;
172 0 means ``use the default''.
175 for possible choices of case-mapping code,
178 means ``no case mapping''.
181 for details on tag masks;
182 0 means ``use the default''.
186 option is given, the decimal number in
188 is taken to be the exact table size, not the expected number of records,
193 to predict a good size for that number of records is suppressed.
197 file is normally about 6 bytes per record (based on the estimate given to
199 or the previous history of the
208 Written at U of Toronto by Henry Spencer, for the C News project.
211 for the history of the underlying database routines.
213 There are a number of undocumented options with obscure effects,
214 meant for debugging and regression testing of
217 Permissions for the index files probably ought to be taken from those
220 The line-length limit is a blemish, alleviated only slightly by