GROK(1L) GROK(1L)
NAME
grok - Desktop Database Manager and GUI Builder
SYNOPSIS
grok [-h] [-d] [-v] [-t] [-T] [-f] [form query]]
DESCRIPTION
grok is a database manager that displays two-dimensional databases
using a card file paradigm. A GUI builder is available to create
user-defined applications. Grok comes with a number of pre-built
applications such as a phone directory, todo lists, and a sample
country database. The form to display (phone, todo, countries, etc.)
can be given as the first parameter. This manual page describes the
command line options of grok. For information on how to use grok,
refer to the on-line help pages, and to the PostScript or TeX manual.
OPTIONS
-h List available options.
-d Print fallback X resources and exit. The output can be appended
directly to the ~/.Xdefaults file for modification of the
geometry, color, and font defaults.
-v Print the program version and patchlevel and exit.
-t Requires specification of a form. Without a query string, prints
all cards to stdout in the same format that is used for the
summary window in interactive mode. If a query is also specified,
print only cards that satisfy the query expression (see below).
The form may have a default query built in.
-T This option is equivalent to -t, but omits the header line.
-f Don't fork on startup. This is useful for debugging.
form Specifies the database to display. Grok distinguishes forms and
databases. Both always come in pairs. The form defines the
representation of the cards and the database provides the raw
data. If no form is specified, one can be chosen in interactive
mode. The -t and -T options require a form argument.
query
If the form has a built-in query, it is used to select which
cards in the database to display initially. If there is no
default query, all cards are displayed. The query argument can be
used to override the default query. This option should always be
quoted with single quotes to keep the shell from interpreting the
query string. There are different types of queries: '*' selects
all cards, '/string' performs a case-insensitive string search,
'{expr}' selects all cards for which the string expression
returns a non-null, non-'f' string, and '(expr)' selects all
- 1 - Formatted: June 9, 2026
GROK(1L) GROK(1L)
cards for which the numerical expression returns nonzero. The
leading '/' in string searches is optional. For a detailed
description of query expressions, refer to the "Expression
Grammar" item in the help pulldown, or to the PostScript user's
manual. In addition to these options, grok supports the usual X
options such as -iconic. The -geometry option should not be used
to preset a window size; grok determines and frequently adjusts
its own size.
EXAMPLES
grok Start up grok with no form. The Database pulldown can be used to
choose one. grok phone Start up grok with the phone form. Perform
that form's default query if it has one. grok phone '/thomas' Start
up grok with the phone form. Ignore the default query and select only
cards that contain the word "thomas". Case is ignored. grok -t phone
'/thomas' Print all cards of the form phone to stdout that contain the
string "thomas". Do not start the interactive user interface. grok
phone '{_group == "f" && _email}' Start up grok with the phone form.
Ignore the default query and select only cards that describe friends
that have an email address.
FILES
Below, GBIN and GLIB refer to the installation directories specified
at the beginning of the Imakefile when the programs were compiled.
They are /usr/local/bin and /usr/local/lib, respectively, by default.
*.gf Files ending with the extension .gf are assumed to
contain grok forms.
*.db Unless the form specifies otherwise, the database
that provides the raw data for a form has the same
path and name as the form, but with the extension
.db. Procedural databases have no extension.
. The current directory is searched first for form
files.
./grokdir The grokdir current directory is searched next for
form files. This is done to allow grok to be started
from the source distribution directory for
evaluation.
~/.grok By default, all forms and databases are stored here.
By convention, all private forms and databases are
stored here. This directory is searched after . and
./grokdir.
GLIB/grokdir This directory is searched last. It is supposed to
contain forms visible to all users of a system. Only
one user should have write permission.
- 2 - Formatted: June 9, 2026
GROK(1L) GROK(1L)
~/.grok/.grokrc Preferences and the current configuration of grok.
GBIN/grok The grok executable. This should be in the user's
search path. Form files are set up so they can be
"executed" by feeding themselves to grok, as long as
grok is in the search path $PATH.
GLIB/grok.hlp All help texts used by the grok help system.
EXAMPLE DATABASE FORMS
To view the example forms (on the Liverpool Archive/Binary
Distribution) you need to set up a variable in the environment:
export GROK_FORM=/opt/hppd/lib/X11/xgrok
For more info on customising xgrok see the on-line help files.
AUTHOR
Thomas Driemeyer <thomas@bitrot.in-berlin.de> Please send all
complaints, comments, bug fixes, and porting experiences to me. Always
include your grok version as reported by "grok -v" in your mail. New
forms for inclusion in the distribution are welcome. Make sure that
your email address is in the form's comment field, and that there is
some help information attached to the form with the Def Help function.
- 3 - Formatted: June 9, 2026