readintlist

Table of Contents

Prototype: readintlist(filename, comment, split, maxentries, maxbytes)

Return type: ilist

Description: Splits the file filename into separated values and returns the list.

The comment field is a multiline regular expression and will strip out unwanted patterns from the file being read, leaving unstripped characters to be split into fields. Using the empty string ("") indicates no comments.

Arguments:

  • filename: string - File name to read - in the range: "?(/.*)
  • comment: string - Regex matching comments - in the range: .*
  • split: string - Regex to split data - in the range: .*
  • maxentries: int - Maximum number of entries to read - in the range: 0,99999999999
  • maxbytes: int - Maximum bytes to read - in the range: 0,99999999999

Example:

Prepare:

printf "one\ntwo\nthree\n" > /tmp/list.txt
printf "1\n2\n3\n"         >> /tmp/list.txt
printf "1.0\n2.0\n3.0"     >> /tmp/list.txt

Run:

bundle agent example_readintlist
{
  vars:
      "my_list_of_integers"
        ilist => readintlist( "/tmp/list.txt",     # File to read
                              "^(\D+)|(\d+[^\n]+)", # Ignore any lines that are not integers
                              "\n",                 # Split on newlines
                              inf,                  # Maximum number of entries
                              inf);                 # Maximum number of bytes to read

  reports:
      "my_list_of_integers includes '$(my_list_of_integers)'";
}
bundle agent __main__
{
  methods: "example_readintlist";
}

Output:

R: my_list_of_integers includes '1'
R: my_list_of_integers includes '2'
R: my_list_of_integers includes '3'

See also: readstringlist(), readreallist()