Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
MPICK(1)		     General Commands Manual			MPICK(1)

NAME
     mpick -- advanced message filter

SYNOPSIS
     mpick [-F file] [-T] [-v] [-t test] [msgs ...]

DESCRIPTION
     mpick prints all matching messages.

     If  used interactively, mpick will default to the current sequence.  Other-
     wise, mpick will read filenames from the standard input.

     The options are as follows:

     -F file
	     Read expression from file and  only  show	matching  messages,  see
	     "TESTS".

     -T      Include whole thread.

     -t test
	     Only show messages matching the expression test, see "TESTS".

     -v      Print how many messages were tested and picked to standard error.

TESTS
     mpick tests are given by the following EBNF:

     <expr>	::= <expr> ? <expr> : <expr>  -- ternary operator
		  | <expr> || <expr>  -- disjunction
		  | <expr> && <expr>  -- conjunction
		  | ! <expr>	      -- negation
		  | ( <expr> )
		  | <expr> "|"	<str> -- pipe current mail to command
		  | <expr> ">>" <str> -- append current mail to file
		  | <expr> ">"	<str> -- write current mail to file
		  | <flagprop>
		  | <timeprop> <numop> <dur>
		  | <numprop> <numop> <num>
		  | <hdrprop> <decodeop> <strop> <str>
		  | <strprop> <strop> <str>
		  | prune	      -- do not match further messages in thread
		  | print	      -- always true value
		  | skip	      -- always false value
		  | <let>
		  | <ident>

     <flagprop> ::= child | draft | flagged | info | new | parent | passed
		  | replied  | seen | selected | trashed

     <timeprop> ::= atime | ctime | mtime | date

     <numprop>	::= depth | kept | replies | index | size | total

     <numop>	::= <= | < | >= | > | == | = | !=

     <dur>	::= "./path"	      -- mtime of relative path
		  | "/path"	      -- mtime of absolute path
		  | "YYYY-MM-DD HH:MM:SS"
		  | "YYYY-MM-DD"      -- at midnight
		  | "HH:MM:SS"	      -- today
		  | "HH:MM"	      -- today
		  | "-[0-9]+d"	      -- n days ago at midnight
		  | "-[0-9]+h"	      -- n hours before now
		  | "-[0-9]+m"	      -- n minutes before now
		  | "-[0-9]+s"	      -- n seconds before now
		  | [0-9]+	      -- absolute epoch time

     <num>	::= [0-9]+ ( c	      -- *1
			   | b	      -- *512
			   | k	      -- *1024
			   | M	      -- *1024*1024
			   | G	      -- *1024*1024*1024
			   | T )?     -- *1024*1024*1024*1024
		  | cur 	      -- index of cur message

     <hdrprop>	::= from | to | subject | <str>

     <decodeop> ::= . addr	    -- match address parts
		  | . disp	    -- match address display parts
		  |		    -- empty matches raw headers

     <strprop>	::= path

     <strop>	::= == | = | !=       -- string (in)equality
		  | ===    | !===     -- case insensitive string (in)equality
		  | ~~	   | !~~      -- glob (fnmatch)
		  | ~~~    | !~~~     -- case insensitive glob (fnmatch)
		  | =~	   | !=~ | !~ -- POSIX Extended Regular Expressions
		  | =~~    | !=~~     -- case insensitive POSIX Extended Regular Expressions

     <str>	::= " ([^"] | "")+ "  -- use "" for a single " inside "
		  | $[A-Za-z0-9_]+    -- environment variable

     -- let expressions evaluate the expression following the `in` keyword,
     -- the bindings are lazily evaluated.
     <let>	::= { let <ident> = <scope> } in <scope>

     -- Inside the scope previously defined idents are replaced with expressions
     <scope>	::= <expr>

     <ident>	::= [A-Za-z_][A-Za-z0-9_]+

EXIT STATUS
     The mpick utility exits 0 on success, and >0 if an error occurs.

EXAMPLES
     You can pick mails to move them into another maildir.

	   mv $(mlist ./INBOX | mpick -t 'from =~ "@github"') ./github/cur

     Or you can use mpick to pick mails from the current sequence.

	   mpick -t 'subject =~~ "mblaze"' | mscan

     A	more  advanced	mpick  expression  to pick mails in a certain time span,
     which are flagged as replied or not seen.

	   mpick -t 'date >= "2016-01-01" && date < "2017-01-01" && (replied || !seen)'

     And to find other mblaze users.

	   mpick -t '"User-Agent" =~~ "mblaze"' | mscan

SEE ALSO
     lr(1), mailx(1)

AUTHORS
     Leah Neukirchen <leah@vuxu.org>
     Duncan Overbruck <mail@duncano.de>

LICENSE
     mpick is in the public domain.

     To the extent possible under law, the creator of this work has  waived  all
     copyright and related or neighboring rights to this work.

     http://creativecommons.org/publicdomain/zero/1.0/

FreeBSD ports 15.quarterly	  July 30, 2020 			MPICK(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mpick&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help