mblaze/man/msed.1

142 lines
2.9 KiB
Groff
Raw Normal View History

2016-08-01 14:39:21 +00:00
.Dd August 1, 2016
.Dt MSED 1
.Os
.Sh NAME
.Nm msed
.Nd manipulate message headers
2016-08-01 14:39:21 +00:00
.Sh SYNOPSIS
.Nm
.Ar script
.Op Ar msgs\ ...
.Sh DESCRIPTION
.Nm
prints the messages
.Ar msgs
with message headers transformed by the commands in
.Ar script .
.Po
2016-08-01 14:39:21 +00:00
See
.Xr mmsg 7
for the message argument syntax.
.Pc
2016-08-01 14:39:21 +00:00
If no
.Ar msgs
are passed,
.Nm
will default to the current message.
.Pp
.Nm
scripts are akin to a subset of
.Xr sed 1
scripts, but optimized for modifying messages.
2016-08-01 14:39:21 +00:00
Note that
.Nm
unfolds and normalizes message headers,
so they may need to be passed through
2016-08-01 14:39:21 +00:00
.Xr mmime 7
to ensure RFC 5322 conformance.
The message body is not affected.
2016-08-01 14:39:21 +00:00
.Pp
.Nm
supports the following commands.
The separators
.Em after
the command letter may be substituted with an arbitrary symbol, just as in
2016-08-01 14:39:21 +00:00
.Xr sed 1 .
Multiple commands can be separated by
.Sq Cm \&; .
2016-08-01 14:39:21 +00:00
.Bl -tag -width Ds
.It Cm \&/ Ns Ar header Ns Cm \&/ Ns Ic a Ns Cm \&/ Ns Ar value Ns Cm \&/
2016-08-01 14:39:21 +00:00
If the header
.Sq Ar header Ns Cm \&:
is not set in the message, add it with the given
2016-08-01 14:39:21 +00:00
.Ar value .
.It Cm \&/ Ns Ar headers Ns Cm \&/ Ns Ic c Ns Cm \&/ Ns Ar value Ns Cm \&/
2016-08-01 14:39:21 +00:00
Change colon-separated headers matching the regular expression
.Ar headers ,
with implicit anchoring to the header name,
to the value given in
.Ar value .
.It Cm \&/ Ns Ar headers Ns Cm \&/ Ns Ic d
2016-08-01 14:39:21 +00:00
Delete colon-separated headers matching the regular expression
.Ar headers ,
with implicit anchoring to the header name.
Use explicit
.Sq Li \&.*
2016-08-01 14:39:21 +00:00
to match arbitrary strings at the beginning or end of the headers.
.Pp
For example,
.Sq Li "/x-.*/d"
will delete all headers starting with
.Sq Li "X-"
.Pq always case insensitive ,
2016-08-01 14:39:21 +00:00
and
.Sq Li "/from:to:cc/d"
will delete the headers
2017-08-20 15:11:22 +00:00
.Sq Li From\&: ,
.Sq Li To\&: ,
2016-08-01 14:39:21 +00:00
and
2017-08-20 15:11:22 +00:00
.Sq Li Cc\&: .
.It Oo Cm \&/ Ns Ar headers Ns Cm \&/ Oc Ns Ic s Ns Cm \&/ Ns Ar regex Ns Cm \&/ Ns Ar replacement Ns Cm \&/ Ns Op Ar flags
2016-08-01 14:39:21 +00:00
Substitute matches of the POSIX Basic Regular Expression
.Ar regex
in headers matching the POSIX Basic Regular Expression
.Ar headers ,
with implicit anchoring to the header name
.Pq or all headers, if omitted ,
2016-08-01 14:39:21 +00:00
with the string
.Ar replacement ,
expanding
.Sq Cm \&&
2016-08-01 14:39:21 +00:00
to the matched string,
and
.Sq Cm \e Ns Ar N
2016-08-01 14:39:21 +00:00
to the
.Ar N Ns
th
sub-expression,
where
.Ar N
is between 1 and 9.
.Pp
If
.Ar flags
contains the letter
.Sq Cm d ,
the header is removed if
.Ar regex
matched.
.Pp
2016-08-01 14:39:21 +00:00
By default, only the first match is replaced, unless
.Ar flags
contains the letter
.Sq Cm g .
.Pp
By default,
.Ar regex
is matched case sensitively, unless
.Ar flags
contains the letter
.Sq Cm i .
.El
.Sh EXIT STATUS
.Ex -std
.Sh SEE ALSO
.Xr sed 1 ,
.Xr mhdr 1 ,
2016-08-01 14:39:21 +00:00
.Xr mmsg 7 ,
.Xr regex 7 /
.Xr re_format 7
2016-08-01 14:39:21 +00:00
.Sh AUTHORS
2017-01-21 16:17:12 +00:00
.An Leah Neukirchen Aq Mt leah@vuxu.org
2016-08-01 14:39:21 +00:00
.Sh LICENSE
.Nm
is in the public domain.
.Pp
To the extent possible under law,
the creator of this work
has waived all copyright and related or
neighboring rights to this work.
.Pp
.Lk http://creativecommons.org/publicdomain/zero/1.0/