Как добавить некоторую строку в существующую строку (не в конец файла) в файле в марионетке? - PullRequest
0 голосов
/ 16 марта 2020

Исходный файл

# cat testfile
one
two
three 
four

Необходимые изменения в файле

# cat testfile
one
two
three mynum <-- string is added here
four

Я натолкнулся на модуль file_line, который помогает в добавлении в конец файла. Я не смог найти указатели что соответствует моей необходимости добавить к существующей линии.

Есть ли что-нибудь, чтобы переопределить строку «три» и добавить к этой же строке? или любые другие альтернативы.

1 Ответ

1 голос
/ 16 марта 2020

Как упомянуто в комментариях, вы можете использовать опцию match для file_line.

Попробуйте

file_line { 'add mynum to line starting with three':
  path   => '/fullpath/testfile',
  line   => 'three mynum',
  match  => '^three ',
}

Опция match задокументирована на https://forge.puppet.com/puppetlabs/stdlib/reference#match.

Вы можете разложить шаблон в переменную при необходимости:

$line_pattern = 'three'

file_line { 'add mynum to line starting with three':
  path   => '/fullpath/testfile',
  line   => "${line_pattern} mynum",
  match  => "^${line_pattern} ",
}
...