2017-02-07 16 views
1

У меня есть несколько манифестов Puppet с информацией о версии программного обеспечения, которое разрабатывает моя компания. Это выглядит примерно так:Замена нескольких номеров под-версий другим с помощью PowerShell

Мне нужно изменить номер версии к югу от версии, которая просто добавляет письмо в конце номера версии, так что это выглядит так, например:

app_version  => '11.6.1d', 

Мои манифесты содержат уже некоторые подмены, поэтому у вас уже будет 11.6.1a. Я использую хэш-таблицу для хранения различных версий и замены значения:

$versions = @{ 
    '11.6.1[a-zA-Z]' = '11.6.1b'; 
    '11.7.0[a-zA-Z]' = '11.7.0d'; 
    '11.7.2[a-zA-Z]' = '11.7.2b'; 
    '11.8.6[a-zA-Z]' = '11.8.6c'; 
    '11.8.13[a-zA-Z]' = '11.8.13b' 
} 

У меня возникли проблемы с этим, потому что с помощью номера от версии, затем с [a-zA-z] изменится только диверсий, которые содержат письмо после того, как номер версии.

Какое выражение следует использовать в $versions, чтобы оно выглядело в версиях, которые являются 11.6.1 ИЛИ 11.6.1 + буквами после 1?

+0

В качестве побочного примечания я бы рекомендовал хранить такую ​​информацию в Hiera, а не в манифестах Puppet. Это упрощает управление, как вручную, так и программно. –

ответ

1

Если вы ищете для регулярного выражения, чтобы соответствовать как 11.6.1 и 11.6.1d, вы, вероятно, хотите:

11.6.1[a-zA-Z]? 

который необязательно соответствует последний набор ([a-zA-Z]), если она существует, но не, если это Безразлично не существует.

+0

Поскольку PowerShell по умолчанию не чувствителен к регистру, '11.6.1 [a-z]?' Должно быть достаточно. –

+0

@AnsgarWiechers не пользователь powershell, поэтому вы, вероятно, знаете лучше, просто основывая его на исходном образце OP. – ffledgling

+0

Спасибо. Это то, что я искал? решил мою проблему. – Radar

 Смежные вопросы

  • Нет связанных вопросов^_^