2014-09-10 2 views
1

Я пытаюсь использовать awk с pipeTo и нужна помощь с синтаксисом.groovy ant execute with pipeTo

это работает:

def myId = 'myid' 
print "ls -al".execute().pipeTo("grep ${myId}".execute()).text 

это не удается:

print "ls -al".execute().pipeTo('awk \'{print $2}\''.execute()).text 
print "ls -al".execute().pipeTo('''awk '{print $2}' '''.execute()).text 
+2

Возможно, попробуйте: '['awk', '{print $ 2}']. Execute()'. Отдельные аргументы. – Opal

ответ

1

Вы можете попробовать removing the space between print and \$1:

p1="ls -la".execute() 
p2='awk {print\$1}'.execute() 
p1 | p2 
p2.waitFor() 
print p2.text 

Примечание p2.err.text будет содержать сообщения об ошибках, если таковые имеются (полезно, если p2.text не заполнен).