[英]How to grep a specific path from output of unzip -l
我需要在.app文件夾后面提取Info.plist文件的路徑。
$ unzip -l test.ipa | grep Info.plist
258 05-25-2018 11:52 Payload/test.app/CDVLaunchScreen.storyboardc/Info.plist
2197 05-25-2018 11:52 Payload/test.app/Info.plist
問題是每個.ipa文件中.app文件夾的名稱都不同。 我無法訪問Payload/test.app/Info.plist
。 我試過了:
$ unzip -l test.ipa | grep Payload/*.app/Info.plist
$ unzip -l test.ipa | grep "Payload/..app/Info.plist"
什么都不產生。
正確的grep參數如何? 另外我怎么只提取路徑( Payload/test.app/Info.plist
)而不是整行( 2197 05-25-2018 11:52 Payload/test.app/Info.plist
)?
unzip -l test.ipa | grep -o 'Payload/.*\.app/Info\.plist'
你需要的正則表達式是Payload/.*\\.app/Info\\.plist
。 注意逃脫的點 - 它們必須按字面意思匹配。
.*
將由shell解釋,除非您將grep參數括在引號中(在您的情況下雙引號也可以,因為在此特定表達式中不會發生變量擴展沖突)。
最后, -o
開關告訴grep輸出只匹配。
在一個模式中.
表示任何字符, *
表示前面字符的0或更多倍。
你的命令應該是:
unzip -l test.ipa | grep -o 'Payload/.*\.app/Info\.plist'
如果您不確定所有路徑是否以Payload
開頭,請嘗試
unzip -l test.ipa | grep -P '(?<=\\s)\\S*Info.plist'
它匹配Info.plist
之前的所有非空白字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.