Movatterモバイル変換


[0]ホーム

URL:


CFEngine documentation homepage

data_readstringarray

Suggest changes
Table of contents

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

Return type:data

Description: Returns a data container (map) with up tomaxentries-1 fields from the firstmaxbytes bytes of filefilename. The first field becomes the key in the map.

One dimension is separated by the regexsplit, the other by thelines in the file. The array key (the first field) must be unique; ifyou need to allow duplicate lines usedata_readstringarrayidx().

Thecomment field is a multiline regular expression and will strip outunwanted patterns from the file being read, leaving unstripped characters to besplit 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:

code
echo a,b,c > /tmp/cfe_arrayecho "# This is a comment" >> /tmp/cfe_arrayecho d,e,f >> /tmp/cfe_arrayecho g,h,i >> /tmp/cfe_arrayecho "# This is another comment" >> /tmp/cfe_arrayecho j,k,l >> /tmp/cfe_array

Run:

code
bodycommoncontrol{bundlesequence=>{"example"};}bundleagentexample{vars:# The comment regex warrents an explination:# # matches the character # literally# [^\n]* match a single character not including the newline character# between zero and unlimited times, as many times as possible"bykey"data=>data_readstringarray("/tmp/cfe_array","#[^\n]*",",",10,400);"byint"data=>data_readstringarrayidx("/tmp/cfe_array","#[^\n]*",",",10,400);"bykey_str"string=>format("%S",bykey);"byint_str"string=>format("%S",byint);reports:"By key:$(bykey_str)";"specific element by key a, offset 0: '$(bykey[a][0])'";"By int offset:$(byint_str)";"specific element by int offset 2, 0: '$(byint[2][0])'";}

Output:

code
R: By key: {"a":["b","c"],"d":["e","f"],"g":["h","i"],"j":["k","l"]}R: specific element by key a, offset 0: 'b'R: By int offset: [["a","b","c"],["d","e","f"],["g","h","i"],["j","k","l"]]R: specific element by int offset 2, 0: 'g'

See also:data_readstringarrayidx(),data

History:

  • Added in CFEngine 3.6.0

Still need help?

Chat Ask a question on Github Mailing list
Version 
master3.24 (LTS)3.21 (LTS)view all versions

[8]ページ先頭

©2009-2025 Movatter.jp