文字列からバージョン情報を抽出する

文字列からバージョン情報を抽出する

この文字列からversionCodeand を抽出したい: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
    
  • 2つを組み合わせる

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

カットについて簡単に説明します:

cutdelimiterユーティリティは、(デフォルトではスペース)と に基づいて部分文字列を抽出しますfields/characters

  • デフォルトでは区切り文字は ですliteral spaceが、次のように変更できます。-d
  • あなたの場合、区切り文字は'
  • -f定義された区切り文字に基づいて、相対的に番号付けされたフィールド (ここ4または) を抽出するように cut に指示します。6

実際にカットしてみると、ここを訪問さらに詳しい情報をご自由に追加してください。

関連情報