Это не удастся на многих уровнях.Самая большая проблема, с которой вы столкнетесь, заключается в том, что execute
на самом деле просто выполняет процесс (а не команду оболочки).Поэтому прежде всего вы не можете использовать |
вообще.Следующие аргументы в кавычках не будут работать, потому что execute
будет просто разделяться пробелами.Так что, если вы хотите использовать «оболочки», используйте эквивалент sh -c "..."
вместо execute
в строковом массиве.Например,
["sh", "-c", "..."].execute()
Затем вы можете поместить туда свой шелл-код ...
со всеми перенаправлениями, цитатами, env-переменными и т. Д., Используя правильное цитирование Groovy, как указано в другом ответе.
И чтобы обойти все это: зачем вообще беспокоиться о sed
здесь?Просто используйте replaceAll
в результирующей строке на отличной стороне вещей.