2012-05-10 2 views
26

Возможно ли выполнить замену простой строки в граде, где заполнители/токены не могут быть использованы.Замена стримерной решетки - нет заполнителей

Например: подарю temp.txt Заменить все случаи от xxx по yyy.

+1

Что вы имеете в виду _'... где заполнителей/жетоны не могут быть used'_? –

+0

Примеры, которые я видел, похоже, требуют $ {xxx} или @ xxx @, а не только xxx - может быть, я не понимаю функциональность? – user568280

ответ

3

Я предполагаю, что вы говорите об обработке ресурсов. В этом случае, вы можете использовать метод свободной формы filter:

processResources { 
    filter { String line -> line.replace(...) } 
} 
+2

Можете ли вы рассказать о своем примере. – Ahmed

+10

Downvoted, потому что контекст не задан. Также неясно, как можно обрабатывать только один файл. – FelixM

+4

Это вопрос, в котором отсутствует контекст. Ответ предполагает, что контекст - это обработка ресурсов (см. Первое предложение). –

43

Прочитайте текст:

String contents = new File('whatever.txt').getText('UTF-8') 

Заменить текст

contents = contents.replaceAll('xxx', 'yyy') 

Написать текст снова

new File('replaced.txt').write(contents, 'UTF-8') 

Вы должны быть в состоянии обернуть их в задачу и вызов задача как обычно

+0

хорошо !! как обернуть его в задачу: https://docs.gradle.org/current/userguide/custom_tasks.html – OhadR

+1

Как вы это сделаете с помощью регулярного выражения, например, если вы не знаете, как точно заменить ** xxx ** или ** xx1 ** или ** 1xx1 **? –

Смежные вопросы