|
NAMEmpick —
advanced message filter
SYNOPSIS
DESCRIPTIONmpick prints all matching messages.
If used interactively, The options are as follows: TESTSmpick 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 STATUSThempick utility exits 0 on success,
and >0 if an error occurs.
EXAMPLESYou can pick mails to move them into anothermaildir .
mv $(mlist ./INBOX | mpick -t 'from
=~ "@github"') ./github/cur Or you can use mpick -t 'subject =~~
"mblaze"' | mscan A more advanced 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 ALSOlr(1), mailx(1)AUTHORSLeah Neukirchen <leah@vuxu.org>Duncan Overbruck <mail@duncano.de> LICENSEmpick 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.
Visit the GSP FreeBSD Man Page Interface. |