2015-12-01 2 views
-1

Я хочу, чтобы извлечь подстроку «com.example.alice» отКак извлечь имя пакета (подстроку) из AndroidManifest.xml в Баш

<manifest xmlns:android="http://schemas.android.com/apk/res/android"                       
android:versionCode="10" package="com.example.alice"> 

Я делал это:

ID=$(sed -n 's/package="\(.*\)/"\1/p' src/main/AndroidManifest.xml) 

Но это работает только тогда, когда «пакет =» находится в отдельной строке, например: предложение

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.alice" 
    android:versionCode="10003" 
    android:versionName="1.0.3"> 

ответ

1

Кира работает отлично. Вы также можете получить значение с grep и смотреть-за:

$ grep -Po '(?<=package=)"[^"]*"' file 
"com.example.alice" 

То есть, печатать все, что происходит после того, как package= и до следующего ".