Helo!groovyのコマンドライン引数にアスタリスク(*)を使用するにはどうすればよいですか?
私は1つの議論で独創的なスクリプトを持っています。引数は正規表現のパターンでなければなりません。私は引数に*を使用したいが、いつも持っている:コマンドの構文が間違っている。
これは(opt.pは、引数から取得したパターンである)の例である:
def map1 = [e:'pine___apple', f:'pineapple']
map1.each { entry ->
entry.value.find(~/$opt.p/) { match -> println entry.value}
}
私はこのように、コマンドラインからスクリプトを使用したい:
グルーヴィーテスト-p pine_ *
そして、私は結果がなることを期待:
pine___apple
パイナップル
は、私はこれらのソリューションなどを試してみましたが、何もうまくいかない:
pine_*a
"pine_*a"
'pine_*a'
pine_\*a
'pine_\*a'
"pine_\*a"
pine_'\*'a
pine_"\*"a
pine_'\\*'a
pine_"\\*"a
誰かがこの問題を解決する方法を知っていますか? ありがとう!
EDIT:
私が使用します。
Groovyのバージョン:2.4.6 JVM:1.7.0_45ベンダー:オラクル・コーポレーションのOS:Windows 7の
そして私もCliBuilder使用:
def cli = new CliBuilder()
cli.with
{
p('pattern', args: 1, required: false)
}
def opt = cli.parse(args)
なぜあなたは 'opt.p'にあなたの議論があると思いますか? Groovyにこの変数を設定するコードがありますか? 'opt.p'を印刷してその内容を確認してください。 – Vampire
値が引用符で囲まれていない場合は、ファイル名の代わりにシェルが使用されます。次に例を示します。 'touch pine_fooled_ya; groovy test -p pine_ * a'です。 'groovy test -p 'pine_ * a'' –