2012-01-21 10 views
0

私は壁に向かって頭を叩いています。私はアンドロイドマニフェストからversionNameを抽出するためにsed one-linerが必要です。以下 例: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、ORの連結をしたいのですか?

こちらがお役に立てば幸いです。

+0

これは動作しますが、先頭の空白がある場合、それは私が他の答えを受け入れるよ理由である、それも印刷します – KevinA

0

これはあなたのために働くかもしれない:

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