clientLogin=a@yahoo.com
たとえば、clientLogin=b@gmail.com
file.txt から一連の名前を持つ行を grep する必要があります。
file.txt にはジャンクがありemail=a@yahoo.com email=b@gmail.com
ます。これらを除外する必要があります
これらの行を取得したら、gmail と yahoo を grep してカウントを取得する必要があります
List l = new ArrayList{a@yahoo.com, b@gmail.com}
def gmail = ['sh','-c','grep "clientLogin="$l.get(0) file.txt' | grep gmail | wc -l ]
def yahoo = ['sh','-c','grep "clientLogin="$l.get(1) file.txt' | grep yahoo| wc -l ]
これはうまくいきません。$l.get(1) 値を動的に置き換えるにはどうすればよいですか?
問題は、 ${l.get(0)} が " " の中になければならないことです。つまり:
def gmail = ['sh','-c','grep "clientLogin=${l.get(0)}" file.txt' | grep gmail | wc -l ]
次のようになります。
def gmail = ['sh','-c','grep "clientLogin=a@yahoo.com" file.txt' | grep gmail | wc -l ]
しかしclientLogin=${l.get(0)}
、結果は出ません。どこが間違っているのかわかりません。
あなたの提案に感謝しますが、少なくとも私が試したときは結果が得られません。
file.txt には多くのジャンクと次のようなパターンがあります。
Into the domain clientLogin=a@yahoo.com exit on 12/01/2008 etc..
したがって、私はそうします
def ex = ['sh','-c','grep "domain clientLogin=$client" file.txt'| grep "something more" | wc -l]
そうすれば、必要に応じて grep を連鎖させ、最終的に必要な数に到達させることができます。
使用した場合、grepをチェーンできるかどうかわかりません
def ex = ['grep', "$client", 'file.txt']
ご意見ありがとうございます。