Prototype: grep(regex, list)

Return type: slist

Description: Returns the sub-list if items in list matching the anchored regular expression regex.

This function can accept many types of data parameters.

Arguments:

  • regex: regular expression - Regular expression - in the range: .*
  • list: string - CFEngine variable identifier or inline JSON - in the range: .*

Example:

body common control
{
  bundlesequence => { "test" };
}

bundle agent test
{
  vars:
    "mylist" slist => { "One", "Two", "Three", "Four", "Five" };
    "Tlist" slist => grep("T.*", "mylist");
    "empty_list" slist => grep("ive", "mylist");
    "datalist" data => parsejson('[1,2,3, "Tab", "chive"]');
    "data_Tlist" slist => grep("T.*", "datalist");
    "data_empty_list" slist => grep("ive", "datalist");

    "todo"
      slist => {
        "mylist",
        "Tlist",
        "empty_list",
        "datalist",
        "data_Tlist",
        "data_empty_list",
      };

    "$(todo)_str" string => format("%S", $(todo));

  reports:
    "$(todo): $($(todo)_str)";
}
R: mylist: { "One", "Two", "Three", "Four", "Five" }
R: Tlist: { "Two", "Three" }
R: empty_list: {  }
R: datalist: [1,2,3,"Tab","chive"]
R: data_Tlist: { "Tab" }
R: data_empty_list: {  }

Output:

R: mylist: { "One", "Two", "Three", "Four", "Five" }
R: Tlist: { "Two", "Three" }
R: empty_list: {  }
R: datalist: [1,2,3,"Tab","chive"]
R: data_Tlist: { "Tab" }
R: data_empty_list: {  }

History:

See also: About collecting functions, filter(), every(), some(), and none().