Setting match variables with the set-matches() rewrite rule
Match macros ($1, $2, ... $255
) are temporary variables. You can use them for general purposes when operating with list-like items. For example, the match() filter stores capture group results in match variables when the store-matches
flag is set, or the JSON parser produces match variables if the parsed JSON data is an array.
It is possible to set match variables in a single operation with the set-matches()
rewrite function. set-matches()
uses AxoSyslog list expressions to set $1, $2, ... $255
, so it can be considered as a conversion function between AxoSyslog lists and match variables.
Note
To convert match variables into a AxoSyslog list, use the
$*
macro, which can be further manipulated using list template functions, or turned into a list in type-aware destinations.
Note
To reset match variables to be empty, use the
unset-matches()
rewrite rule.
Declaration
rewrite <name_of_the_rule> {
set-matches("<list-expression or list-based template function>");
};
Example usage for the set-matches() rewrite function
In the following two examples, $1
, $2
, and $3
will be set to foo
, bar
, and baz
, respectively.
Example using string:
rewrite {
set-matches("foo,bar,baz");
};
Example using a list template function:
rewrite {
set-matches("$(explode ':' 'foo:bar:baz')");
};
Last modified August 28, 2024: Formatting fixes (c26e237)