#git #grails #groovy
Вопрос:
Я пытаюсь обрезать пути из результата git diff. Вот что я попробовал :
def ti = "git -C C:\PIE\src\repo diff --name-only".execute()
String directory =ti.text
File file= new File(directory)
def newlines = []
file.toString().eachLine {String line ->
if(line.contains("src")){
line = line.replace("/src","")
}
newlines<<line
}
println newlines
Вывод из gif diff, например, выглядит так :
a/b/c/src/ping.java
d/e/f/src/vim.java
g/h/j/src/key.java
Я хотел бы обрезать каждую строку в файле currentDir следующим образом :
a/b/c
d/e/f
g/h/j
Комментарии:
1. Вы отредактировали свой вопрос, чтобы задать совершенно другой вопрос, который вы задавали изначально. Это очень сбивает с толку любого, кто столкнется с этим позже. Пожалуйста, задавайте новые вопросы как новые вопросы, а не перепрофилируйте старые.
2. да, буду иметь это в виду. Я был немного сбит с толку этим. Моя вина
3. Создание файла с
git diff
ошибкой будет, если у вас несколько различий в файлах. Если вы не используете экземпляр файла для чего-то другого, просто сделайтеti.text.eachLine {}
это . При необходимости вы можете создать экземпляр файла. Или даже более крутой подход:ti.text.readLines().grep { it.contains("src") }.collect { it = it.replaceAll("/src", "") }
Ответ №1:
Если вы хотите удалить /src
часть и все, что за ней следует, вы можете сделать это:
line = line.replaceAll("/src.*","")
вместо того, что у вас есть:
line = line.replace("/src","")