Provided by: debathena-discuss_10.0.12-0debathena3~ubuntu10.04_i386 bug

NAME

       dsgrep - Search discuss meetings with regular expressions

SYNOPSIS

       dsgrep   [-n   n_trans]   [-e  search_regexp]  [-f  meetings_file]  [-t
       trans_num] [-a] [-p] [-v] [-i] [meetingname1 meetingname2 ...]

DESCRIPTION

       Dsgrep searches discuss meetings for transactions that have titles that
       match  the  given  regular  expression, or have contents that match the
       regular expression.  The title of the matching  transactions  or  their
       contents can be printed.

       Dsgrep understands the following options:

       -n n_trans  specifies  the number of transactions to look back from the
                   last transaction in each discuss meeting  specified.   This
                   defaults  to 50.  This option is ignored when the -t option
                   is specified.

       -e search_regexp
                   This specifies the regular expression to be matched, in the
                   style  of egrep(1).  A detailed explaination of the regular
                   expression format is given below.  If this is  omitted,  it
                   defaults to "*", matching all transactions.

       -f meetings_file
                   This  specifies  an  alternative  meetings file to use as a
                   source of meetings.  If this option is  not  specified,  it
                   will use the file ${HOME}/.meetings.,

       -t trans_num
                   Print  out  a  specific  transaction, by number.  When this
                   option is used, the -n option is ignored.

       -a          Causes dsgrep to search the text of  the  transactions  for
                   the regular expressions as well as their titles.

       -p          Causes the text of the text of the matching transactions to
                   be printed instead of just the title.

       -v          Causes errors getting transactions to be  reported.   These
                   errors  are  usually  due  to  deleted  transactions in the
                   meetings, and are ususally not worth seeing.

       -d          Causes  deleted  transactions  to  be  searched  as   well.
                   Otherwise, deleted transactions are ignored.

       -i          Ignores case when matching against search_regexp.

       meetings    This  specifies  the meetings to search; if it is left off,
                   dsgrep will search all the meetings.

REGULAR EXPRESSION SYNTAX

       A regular expression is zero or more branches, separated  by  `|'.   It
       matches anything that matches one of the branches.

       A  branch is zero or more pieces, concatenated.  It matches a match for
       the first, followed by a match for the second, etc.

       A piece is an atom possibly followed by `*',  `+',  or  `?'.   An  atom
       followed  by  `*'  matches a sequence of 0 or more matches of the atom.
       An atom followed by `+' matches a sequence of 1 or more matches of  the
       atom.  An atom followed by `?' matches a match of the atom, or the null
       string.

       An atom is a regular expression in parentheses (matching  a  match  for
       the regular expression), a range (see below), `.'  (matching any single
       character), `^' (matching the null string at the beginning of the input
       string), `$' (matching the null string at the end of the input string),
       a `\' followed by a single character (matching that  character),  or  a
       single character with no other significance (matching that character).

       A  range  is  a  sequence  of characters enclosed in `[]'.  It normally
       matches any single character from the sequence.  If the sequence begins
       with  `^',  it  matches  any  single character not from the rest of the
       sequence.  If two characters in the sequence are separated by `-', this
       is  shorthand  for the full list of ASCII characters between them (e.g.
       `[0-9]' matches any decimal digit).  To include a literal  `]'  in  the
       sequence,  make  it the first character (following a possible `^').  To
       include a literal `-', make it the first or last character.

AMBIGUITY

       If a regular expression could match two different parts  of  the  input
       string,  it will match the one which begins earliest.  If both begin in
       the same place    but match different lengths, or match the same length
       in different ways, life gets messier, as follows.

       In  general,  the possibilities in a list of branches are considered in
       left-to-right order, the  possibilities  for  `*',  `+',  and  `?'  are
       considered  longest-first,  nested  constructs  are considered from the
       outermost in, and  concatenated  constructs  are  considered  leftmost-
       first.  The match that will be chosen is the one that uses the earliest
       possibility in the first choice that has to be made.  If there is  more
       than  one  choice,  the  next will be made in the same manner (earliest
       possibility) subject to the decision  on  the  first  choice.   And  so
       forth.

       For  example,  `(ab|a)b*c'  could  match `abc' in one of two ways.  The
       first choice is between `ab' and `a'; since `ab' is earlier,  and  does
       lead  to  a  successful  overall match, it is chosen.  Since the `b' is
       already spoken for, the `b*' must match its last possibility—the  empty
       string—since it must respect the earlier choice.

       In  the particular case where no `|'s are present and there is only one
       `*', `+', or `?', the net effect is that  the  longest  possible  match
       will  be  chosen.   So  `ab*',  presented  with  `xabbbby',  will match
       `abbbb'.  Note that if `ab*' is  tried  against  `xabyabbbz',  it  will
       match  `ab'  just  after  `x',  due  to  the begins-earliest rule.  (In
       effect, the decision on where to start the match is the first choice to
       be  made,  hence  subsequent choices must respect it even if this leads
       them to less-preferred alternatives.)

SEE ALSO

       egrep(1), discuss(1)

                                  18 Jun 1990                        DSGREP(1)