Я пишу симулятор и хотел бы проводить исследования, вызывая множество экземпляров симулятора, используя различные наборы аргументов командной строки.Я прочитал этот вопрос и несколько других, и они кажутся близкими, но на самом деле я не ищу случайные данные, выполняющие определенное регулярное выражение, я хотел бы, чтобы набор всех строксоответствовать регулярному выражению.Пример входного файла будет выглядеть примерно так:
myprogram.{version1|version2} -arg1 {1|2|4} {-arg2|}
или:
myprogram.{0} -arg1 {1} {2}
0: "version1" "version2"
1: "1" "2" "4"
2: "-arg2" ""
и будет выдавать:
myprogram.version1 -arg1 1 -arg2
myprogram.version1 -arg1 1
myprogram.version1 -arg1 2 -arg2
myprogram.version1 -arg1 2
myprogram.version1 -arg1 4 -arg2
myprogram.version1 -arg1 4
myprogram.version2 -arg1 1 -arg2
myprogram.version2 -arg1 1
myprogram.version2 -arg1 2 -arg2
myprogram.version2 -arg1 2
myprogram.version2 -arg1 4 -arg2
myprogram.version2 -arg1 4
Я мог бы представить что-то подобное ужесуществует, я просто не знаю правильный термин для поиска.Любая помощь приветствуется.Я могу самостоятельно реализовать абстрактную технику или алгоритм, если это необходимо, но если это уже существующий инструмент, я бы предпочел, чтобы он был бесплатным (по крайней мере, как в пиве) и работал на Linux.
Я знаю, что явозможно, опуская некоторые детали, и может быть более точным в отношении подходящих вещей, если это необходимо, вместо того, чтобы наводнить людей с большим количеством деталей заранее.Вполне возможно, что я поступаю неправильно, и я рад всем решениям, даже если они решают мою проблему по-другому.
Самое главное, это решение не должно требовать от меня написаниялюбой дополнительный код синтаксического анализа, если я хочу добавить дополнительные параметры аргумента к «перекрестному произведению» строк, которые я генерирую.У меня уже есть Perl-скрипт, который делает это с набором вложенных циклов for
для каждой «переменной», которые должны меняться каждый раз, когда я меняю число или характер переменных.