Groovy:从空格分隔的行中提取字符串

时间:2016-04-05 09:43:33

标签: regex groovy

所以,我得到了文本文件,它基本上包含键/值行,每行由空格分隔。 我正在尝试实现的是通过密钥提取值,例如。在shell中做的事情是这样的:

cat textfile|awk '/item1/ {print $2}'

并且在groovy中就是这样的东西:

aa = """
item1 /first/path
item2 /another/path
"""

aa.eachLine {
    m = it =~ /item1\s+(.*)/
    if (m.matches()) {
        println m.group(1)
    }
}

但问题是:如何以更好/更Groovy的方式做到这一点?

问候,Wojtek

1 个答案:

答案 0 :(得分:0)

我会这样做:

aa.split( '\n' ).each { 
    def p = it.split(' ')
    if (p.size() == 2) println p[1] 
}

或者,使用实际文件并允许许多空格:

new File( 'file.txt' ).eachLine {
    def p = it.split(/\s+/)
    if (p.size() == 2) println p[1]
}