![]() |
![]()
| ![]() |
![]()
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.
|