2016-04-05 20 views
1

したがって、空白で区切られた各行に、基本的にキー/値の行を含むテキストファイルがあります。 私が達成しようとしているのは、キーで値を抽出することです。シェルで次のように行われているもの:Groovy:スペースで区切られた行から文字列を抽出する

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

及びそのようなグルーヴィーなもので事ない:質問は

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

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

しかし、です:よりよい/よりグルーヴィーな方法でそれを行う方法?

に関して、Wojtekさん

+0

を[codereview.se] –

答えて

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] 
} 
関連する問題