从字符串中提取版本信息

从字符串中提取版本信息

我想从这个字符串中versionCode提取:versionName

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

我认为我应该采取以下行动:

  1. versionCode在字符串中查找。
  2. 从我们在步骤 1 中找到的位置开始查找'(单引号)。
  3. 读取字符直到出现另一个单引号。
  4. 重复相同过程(1~3)versionName

但我不知道如何使用 Bash 脚本来做到这一点。请帮帮我 @_@

答案1

考虑到您想要从中提取 versionCode 和 versionName 的字符串将始终采用您提供的格式。

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

假设上面的字符串保存在文件名下package_info,然后使用会简单并且更快:

  • 获取versionCode

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

    cut -d "'" -f 6 package_info
    
  • 结合两者

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

关于 cut 的简要介绍:

cut实用程序根据delimiter(默认为空格)和提取子字符串fields/characters

  • 默认情况下,分隔符是literal space,可以使用-d
  • 就你的情况而言,分隔符是'
  • -f告诉 cut根据定义的分隔符提取相对编号的字段(此处4或)。6

对于一些实际操作,访问这里并随意添加更多细节。

相关内容