Мне нужно grep для строк с кучей имен, скажем clientLogin=a@yahoo.com
, clientLogin=b@gmail.com
из файла .txt.
file.txt имеет мусор, который email=a@yahoo.com email=b@gmail.com
. Мне нужно отфильтровать их
Как только я получу эти строки, мне нужно выполнить grep для gmail и Yahoo и получить их количество
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)} должен быть внутри "",
i.e.:
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, как я хочу, и в конечном итоге приземлиться на счет, который мне нужен.
Я не уверен, смогу ли я зацепить зацепки, если я использую
def ex = ['grep', "$client", 'file.txt']
спасибо за ваш вклад.