2016-04-05 21 views
1

Yani, temel olarak anahtar/değer çizgilerini içeren metin dosyasını, boşluk ile ayrılmış her satırda aldım. Denediğim şey, anahtar ile elde edilen değerdir, örn. kabukta böyle yapılır şey: soru,Groovy: boşlukları ayrılmış çizgilerden ayıklar ayıklanıyor

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

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

Ama:

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

ve böyle harika bir şey şeyi yapar nasıl olduğunu daha güzel/daha Groovy şekilde ?

Saygılarımızla, Wojtek

+0

[codereview.se] –

cevap

0

böyle yapacağını:

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

Veya, gerçek bir dosya ile ve izin birçok alanlarda:

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