text
Look up in flat text files V8.7 and later
The text
database-map type allows you to look up keys in flat
text files. This technique is vastly less efficient
than looking up keys in real databases, but it can
serve as a way to test rules before implementing
them in database form.
For the text
database map, columns for the key and value are
measured as an index. That is, the first column is
number 0. To illustrate, consider the following mini
configuration file that can be used to check
spelling:
Kspell text /usr/dict/words Spell R$- $: $(spell $1 $: not in dictionary $)
The /usr/dict/words file contains only a single column of words. This rule shows that the key is (by default) the first column (index 0). And the value is (by default) also the first column (index 0).
For more sophisticated applications you can specify
the key’s column (with the -k
switch), the value’s column (with
the -v
switch),
and the column delimiter (with the -z
switch). To
illustrate, consider the need to look up a
user-id in the
/etc/passwd file and to
return the login name of the user to whom it
belongs:
Kgetuid text -k2 -v0 -z: /etc/passwd R$- $: $(getuid $1 $)
The lines of a password file look like this:
ftp:*:1092:255:File Transfer Protocol Program:/u/ftp:/bin/sh
The third column (where the columns are separated by
colons) is the uid field. The
first is the login name. Note that the -k
and -v
switches show these
fields as indexes, where the first is 0 and the
third is 2.
Note that if a file cannot be opened ...
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.