簡體   English   中英

如何從unzip -l的輸出中獲取特定路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM