【问题标题】:Trim the paths from git diff result in Groovyscript在 Groovy 脚本中修剪来自 git diff 的路径
【发布时间】:2021-06-01 18:01:21
【问题描述】:

我正在尝试从 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

【问题讨论】:

  • 您已编辑您的问题以提出与您最初提出的完全不同的问题。这对于以后遇到此问题的任何人来说都是非常困惑的。请将新问题作为新问题提出,而不是重复使用旧问题。
  • 是的,请记住这一点。我对此有点困惑。我的坏
  • 如果您有多个文件差异,则使用git diff 创建文件会出错。如果您不将文件实例用于其他用途,只需执行ti.text.eachLine {}。如果需要,您可以创建一个 File 实例。甚至是更时髦的方法:ti.text.readLines().grep { it.contains("src") }.collect { it = it.replaceAll("/src", "") }

标签: git grails groovy


【解决方案1】:

如果您想删除 /src 部分及其后面的所有内容,您可以这样做:

line = line.replaceAll("/src.*","") 

而不是你所拥有的:

line = line.replace("/src","")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-13
    • 2011-10-07
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多