私はシミュレーターを作成しており、さまざまなコマンドライン引数のセットを使用して、シミュレーターの多くのインスタンスを呼び出して調査を実行したいと考えています。私はこの質問と他のいくつかを読みましたが、それらは近いように見えますが、実際には特定の正規表現を満たすランダムデータを探しているわけではありません。正規表現に一致するすべての文字列のセットが必要です。入力ファイルの例は次のようになります。
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 で実行することを好みます。
私はおそらくいくつかの詳細を省略していることを知っており、前もって多くの詳細を人々に殺到させるのではなく、必要に応じて適切なことについてより具体的にすることができます. 私がこれを間違った方法で行っている可能性は十分にあり、別の方法で問題を解決したとしても、すべての解決策を歓迎します.
最も重要なことは、生成する文字列の「交差積」に引数オプションを追加したい場合、このソリューションでは追加の解析コードを記述する必要がないことです。for
変数の数または性質を変更するたびに変更する必要がある、各「変数」に対する一連のネストされたループでこれを行う Perl スクリプトが既にあります。