2012-01-21 42 views
0

我一直在撞牆,我需要一個sed單線程從android清單中提取versionName。下面 例如:sed AndroidManifest版本

package="com.nosideracing.rchipremote" 
android:versionCode="1014" 
android:versionName="1.0.1.4" > 

<uses-sdk android:minSdkVersion="10" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" > 
</uses-permission> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > 
</uses-permission> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > 
</uses-permission> 
<uses-permission android:name="android.permission.WAKE_LOCK" > 
</uses-permission> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > 
</uses-permission> 
<uses-permission android:name="android.permission.VIBRATE" > 
</uses-permission> 

回答

2
awk -F'"' '/android:versionName/{print $(NF-1); exit}' manifestFile 

注:我沒有測試它。通過電話回覆。

0
sed -n '/android:versionName="/{;s///;s/".*$//;p;q;}' manifestFile 

產生

1.0.1.4 

還是你想的versionCode和的versionName,還是串聯?

我希望這會有所幫助。

+0

這個作品,但如果有前導空格,它打印太,這就是爲什麼我接受對方的回答 – KevinA

0

這可能會爲你工作:

sed 's/^android:versionName="\([^"]*\).*/\1/p;d' manifestFile 
1.0.1.4