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

FreeBSD Manual Pages

  
 
  

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.
       Otherwise, 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".	 file,

       -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 er-
	       ror.

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 14.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+14.3.quarterly>

home | help