如何用grep匹配并提取unzip -l输出中.app后的Info.plist路径?
提取IPA中.app文件夹下的Info.plist路径解决方案
嘿,我来帮你搞定这个IPA文件里精准定位Info.plist路径的问题~
一、正确的grep匹配写法
你之前尝试的Payload/*.app/Info.plist是shell的通配符语法,但grep默认使用的是正则表达式,直接这么写自然匹配不到。我们需要用正则语法来适配任意名称的.app文件夹:
unzip -l test.ipa | grep -E 'Payload/[^/]+.app/Info.plist'
这里的关键细节:
-E:启用扩展正则表达式,让语法更直观简洁[^/]+:匹配一个或多个非斜杠的字符,完美适配任意名称的.app文件夹(因为路径里的文件夹名不会包含斜杠)
二、仅提取纯路径(去掉整行冗余内容)
如果不想拿到unzip -l输出里的权限、文件大小这些多余信息,只需要给grep加-o参数(只输出匹配到的部分),命令就变成:
unzip -l test.ipa | grep -oE 'Payload/[^/]+.app/Info.plist'
执行后就只会输出类似Payload/test.app/Info.plist的纯路径,没有其他干扰内容。
另外,如果你习惯用awk,也可以用这个写法达到同样效果:
unzip -l test.ipa | awk '/Payload\/.*\.app\/Info\.plist/ {print $NF}'
$NF是awk里的变量,表示取当前行的最后一个字段,正好对应文件路径。
内容的提问来源于stack exchange,提问作者mles
相关产品推荐
相关产品推荐

