2017-07-22 72 views
1

我厭倦了這樣的sed:D所以我有一個小檔案:如何與sed第一次比賽?

version = "1.1" 
group= "com.centurion.eye" 
archivesBaseName = "eye" 

impmet { 
    version = "4.1614" 
    runDir = "eclipse" 
} 

這裏是我的sed命令:

sed -n -e '/version/ s/.* = *//p' "build.gradle" 

,我需要得到的只有1.1版。所以,當我執行這個命令,輸出是:

"1.3" 
"4.1614" 

但期望之一是:

"1.3" 

我怎樣才能做到這一點?謝謝!

+0

你得到一個機會來檢查我的解決方案? – JRG

回答

0

將您的命令輸出到head -1以僅獲取第一個條目。

sed -n -e '/version/ s/.* = *//p' "build.gradle" | head -1 

樣品試驗

[ /c]$ cat build.gradle 
version = "1.1" 
group= "com.centurion.eye" 
archivesBaseName = "eye" 

impmet { 
    version = "4.1614" 
     runDir = "eclipse" 
     } 
[ /c]$ sed -n -e '/version/ s/.* = *//p' build.gradle | head -1 
"1.1" 
+0

謝謝,我會試試! –

1

匹配的第一個後退出。

sed -n -e '/version/ {s/.* = *//p;q}' build.gradle 
0

隨着GNU sed的,你也可以使用0在地址範圍僅在第一場比賽採用替代:

sed -n -e '0,/version/s/.* = *//p' build.gradle