我使用cordova为Android构建应用程序,但无法在AndroidManifest.xml文件中设置android:minSdkVersion。
所以每次我开始使用我编写的脚本构建应用程序时,我决定修改此文件。
我想更改一行:
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />
到此:
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
由于cordova不允许我使用config.xml设置它(只允许使用phonegap构建,但我只使用cordova),我需要自己修改xml。
我想将mindSdkVersion中的内容替换为14。
我该怎么做?
我试过了:
sed 's/minSdkVersion="(.*)"/minSdkVersion="14"/g' AndroidManifest.xml
但它仍然使我的uses-sdk行保持不变。
我的正则表达式出了什么问题?
答案 0 :(得分:1)
三件事:
(.*)
\(.*\)
来修改群组
你匹配太多,试试
sed 's/minSdkVersion="[0-9]+"/minSdkVersion="14"/g' AndroidManifest.xml
如果要修改文件,请使用-i
更改文件。
答案 1 :(得分:1)
你的正则表达式存在两个问题。
括号显然被sed
方言解释为字面括号。无论如何它们都是无用的,所以你不需要修复它 - 只需删除它们。
.*
贪婪,并且会在 last 双引号之前匹配。
通过这些评论,修复很容易。
sed 's/minSdkVersion="[^"]*"/minSdkVersion="14"/g' AndroidManifest.xml