Movatterモバイル変換


[0]ホーム

URL:


CFEngine documentation homepage

data_readstringarrayidx

Suggest changes
Table of contents

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

Return type:data

Description: Returns a data container (array) with up tomaxentries fields from the firstmaxbytes bytes of filefilename.

One dimension is separated by the regexsplit, the other by the lines inthe file. The array arguments are both integer indexes, allowing fornon-identifiers at first field (e.g. duplicates or names with spaces), unlikedata_readstringarray().

Thecomment field 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:

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_readstringarray(),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