The mu filter command applies a chain of filters to the input. The filters to apply and their arguments are given in the command line. The full invocation syntax is:
mu filter [option] filter-chain
The syntax for filter-chain in Backus-Naur form follows:
<filter-chain> ::= <filter> | <filter-chain> "+" <filter> <filter> ::= <filter-spec> <ARG>* <filter-spec> ::= <WORD> | "~" <WORD>
where <WORD> stands for the filter name and <ARG> represents filter arguments. To obtain a list of known filter names, run:
mu filter --list
Filters are applied in the order of their appearence, from left to right and operate in encode mode. The plus sign has the same meaning as pipe in shell. The default mode can be changed using the --decode (-d) and --encode (-e) options. Whatever the default mode is, a ‘~’ character before filter name reverts the mode for that filter alone.
For example, to encode the contents of file file.txt in Base64 run:
mu filter base64 < file.txt
To convert it to base64 and use CRLF as line delimiters, run:
mu filter base64 + crlf < file.txt
The following command will decode the produced output:
mu filter --decode crlf + base64
It can also be written as
mu filter ~crlf + ~base64
The following example converts the input from ISO-8859-2 to UTF-8, quotes eventual ‘From’ occurring at the beginning of a line, encodes the result in Base64 and changes line delimiters to CRLF:
mu filter iconv iso-8859-2 utf-8 + from + base64 + crlf
This final example removes UNIX-style comments from the input and joins continuation lines:
mu filter --decode inline-comment -S '#' + linecon
Such invocation can be useful in shell scripts to facilitate configuration file processing.