使用 egrep 获取 android 应用的包名

use egrep to get package name of android app

我想提取我的 apk 的包名作为脚本。

我可以用这样的方式列出包名

./aapt dump badging <apk.path> | grep package

输出看起来像这样

package: name='com.example.app' versionCode='' versionName='4.6.10' platformBuildVersionName='6.0-2166767'

所以我想 运行 aapt 命令,它只有 return com.example.app

我认为它会是这样的,但仍然 return 一切。

./aapt dump badging <apk.path> | egrep package:\ name='(.*?)'

再次使用grep

grep -Po "(?<=name=')[^']*" file

这使用 Perl 正则表达式来打印 o仅在 name=' 之后到 '.

之后的内容

测试

$ cat a
package: name='com.example.app' versionCode='' versionName='4.6.10' platformBuildVersionName='6.0-2166767'
buuu
$ grep -Po "(?<=name=')[^']*" a
com.example.app

通过多次 greps 和一些正则表达式让它工作。下面是我的工作。不确定这是否是最好的方法,但有效。

$ aapt dump badging <path.to.apk> | grep package | grep -Eo '[a-z]+\.\w+\.\w+' $ com.example.app