從字串中提取版本訊息

從字串中提取版本訊息

我想從這個字串中提取versionCode和:versionName

package: name='com.turastory.mysampleapp' versionCode='11' versionName='1.1.4'

我想我應該採取以下行動:

  1. versionCode在字串中查找。
  2. find '(單引號)從我們在步驟 1 中找到的位置開始。
  3. 讀取字元直到出現另一個單引號。
  4. 重複相同的過程(1~3)versionName

但我不知道如何使用 Bash 腳本來做到這一點。請幫幫我 @_@

答案1

考慮到您要從中提取 versionCode 和 versionName 的字串將始終採用您提供的格式。

package: name='com.turastory.mysampleapp' versionCode='11' versionName='1.1.4'

假設上面的字串保存在 filename 下package_info,然後使用會很簡單而且更快:

  • 獲取versionCode

    cut -d "'" -f 4 package_info
    
  • 獲取versionName

    cut -d "'" -f 6 package_info
    
  • 結合兩者

    cut -d "'" -f 4,6 package_info
    

關於切割的簡介:

cut實用程式根據delimiter(預設為空格)和提取子字串fields/characters

  • 預設情況下分隔符號是literal space,可以使用更改-d
  • 在你的情況下,分隔符號是'
  • -f告訴 cut根據定義的分隔符號提取相對編號的欄位(此處4或)。6

對於一些實際切割,訪問這裡並隨時添加更多細節。

相關內容