aapt dump badging结合sed命令未输出预期结果的问题排查
问题原因及解决办法
原命令的核心问题是管道符|前面多了个多余的双引号,这个引号会让Shell把后续的sed命令当成aapt的参数来执行,导致sed根本没生效,所以你看到的是aapt dump badging的完整输出。
按预期输出指定内容的修正命令
如果你只想得到package: name='com.medhaapps.wififtpserver'这行内容,用下面的命令:
aapt dump badging c:/adb/apks/ftp/ftp.apk | sed -n -r "s/(package: name='[a-z0-9.]*').*/\1/p"
可选:如果只想提取纯包名字符串
要是你的实际需求是只拿到com.medhaapps.wififtpserver这个包名,用这个更简洁的命令:
aapt dump badging c:/adb/apks/ftp/ftp.apk | sed -n -r "s/package: name='([a-z0-9.]*)'.*/\1/p"
命令简单说明
-n:让sed默认不输出所有行,只打印匹配后处理的目标行-r:启用扩展正则表达式,无需额外转义括号等特殊字符p:触发打印操作,输出处理后的匹配内容
内容的提问来源于stack exchange,提问作者StealthRT
相关产品推荐
相关产品推荐

