NOTMUCH-SEARCH(1)

NAME

       notmuch-search - search for messages matching the given search terms

SYNOPSIS

       notmuch search [option ...] <search-term> ...

DESCRIPTION

       Search  for  messages  matching  the given search terms, and display as
       results the threads containing the matched messages.

       The output consists of one line per thread, giving  a  thread  ID,  the
       date  of  the  newest (or oldest, depending on the sort option) matched
       message in the thread, the number of matched messages  and  total  mes‐
       sages  in  the thread, the names of all participants in the thread, and
       the subject of the newest (or oldest) message.

       See notmuch-search-terms(7) for details of  the  supported  syntax  for
       <search-terms>.

       Supported options for search include

          --format=(json|sexp|text|text0)
                 Presents  the  results in either JSON, S-Expressions, newline
                 character separated plain-text (default), or  null  character
                 separated  plain-text  (compatible  with  xargs(1)  -0 option
                 where available).

          --format-version=N
                 Use the specified structured output format version.  This  is
                 intended  for  programs that invoke notmuch(1) internally. If
                 omitted, the latest supported version will be used.

          --output=(summary|threads|messages|files|tags)

              summary
                     Output a summary of each thread with any message matching
                     the  search  terms.  The  summary includes the thread ID,
                     date, the number of messages in the thread (both the num‐
                     ber  matched  and  the  total number), the authors of the
                     thread and the subject.

              threads
                     Output the thread IDs of all  threads  with  any  message
                     matching  the  search  terms, either one per line (--for‐
                     mat=text), separated by null characters (--format=text0),
                     as  a JSON array (--format=json), or an S-Expression list
                     (--format=sexp).

              messages
                     Output the message  IDs  of  all  messages  matching  the
                     search  terms, either one per line (--format=text), sepa‐
                     rated by null  characters  (--format=text0),  as  a  JSON
                     array (--format=json), or as an S-Expression list (--for‐
                     mat=sexp).

              files  Output the filenames of all messages matching the  search
                     terms,  either one per line (--format=text), separated by
                     null characters (--format=text0), as a JSON array (--for‐
                     mat=json), or as an S-Expression list (--format=sexp).

                     Note  that each message may have multiple filenames asso‐
                     ciated with it. All of them are included  in  the  output
                     (unless  limited with the --duplicate=N option). This may
                     be particularly confusing for folder: or  path:  searches
                     in a specified directory, as the messages may have dupli‐
                     cates in other directories that are included in the  out‐
                     put,  although  these  files  alone  would  not match the
                     search.

              tags   Output all tags that appear on any message  matching  the
                     search  terms, either one per line (--format=text), sepa‐
                     rated by null  characters  (--format=text0),  as  a  JSON
                     array (--format=json), or as an S-Expression list (--for‐
                     mat=sexp).

          --sort=(newest-first|oldest-first)
                 This option can be used to present results in either  chrono‐
                 logical  order  (oldest-first) or reverse chronological order
                 (newest-first).

                 Note: The thread order will be  distinct  between  these  two
                 options  (beyond being simply reversed). When sorting by old-
                 est-first the threads will be sorted by the oldest message in
                 each  thread,  but  when  sorting by newest-first the threads
                 will be sorted by the newest message in each thread.

                 By default, results will be displayed in reverse  chronologi‐
                 cal  order,  (that  is,  the newest results will be displayed
                 first).

          --offset=[-]N
                 Skip displaying the first N results. With  the  leading  '-',
                 start at the Nth result from the end.

          --limit=N
                 Limit the number of displayed results to N.

          --exclude=(true|false|all|flag)
                 A message is called "excluded" if it matches at least one tag
                 in search.tag_exclude that does not appear explicitly in  the
                 search  terms. This option specifies whether to omit excluded
                 messages in the search process.

                 The default value,  true,  prevents  excluded  messages  from
                 matching the search terms.

                 all additionally prevents excluded messages from appearing in
                 displayed results, in effect behaving as though the  excluded
                 messages do not exist.

                 false  allows  excluded  messages  to  match search terms and
                 appear in displayed  results.  Excluded  messages  are  still
                 marked in the relevant outputs.

                 flag  only has an effect when --output=summary. The output is
                 almost identical to false, but the "match count" is the  num‐
                 ber  of  matching non-excluded messages in the thread, rather
                 than the number of matching messages.

          --duplicate=N
                 Effective with --output=files, output the Nth filename  asso‐
                 ciated  with  each message matching the query (N is 1-based).
                 If N is greater than the number of files associated with  the
                 message, don't print anything.

                 Note  that  this option is orthogonal with the folder: search
                 prefix. The prefix matches messages based on filenames.  This
                 option filters filenames of the matching messages.

EXIT STATUS

       This command supports the following special exit status codes

       20     The requested format version is too old.

       21     The requested format version is too new.

SEE ALSO

       notmuch(1),  notmuch-config(1), notmuch-count(1), notmuch-dump(1), not‐
       much-hooks(5),  notmuch-insert(1),  notmuch-new(1),   notmuch-reply(1),
       notmuch-restore(1),   notmuch-search-terms(7),   notmuch-show(1),  not‐
       much-tag(1)

AUTHOR

       Carl Worth and many others

COPYRIGHT

       2014, Carl Worth and many others

0.18.1