Extrahieren von Versionsinformationen aus einer Zeichenfolge

Extrahieren von Versionsinformationen aus einer Zeichenfolge

Ich möchte aus dieser Zeichenfolge versionCodeFolgendes extrahieren :versionName

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

Ich denke, ich sollte diese Aktionen durchführen:

  1. versionCodein der Zeichenfolge finden .
  2. Suchen Sie „(einfaches Anführungszeichen)“ ausgehend von der Position, die wir in Schritt 1 gefunden haben.
  3. Zeichen lesen, bis ein weiteres einfaches Anführungszeichen erscheint.
  4. Wiederholen Sie den Vorgang (1~3) mitversionName

Aber ich weiß nicht, wie ich das mit einem Bash-Skript machen soll. Helfen Sie mir bitte @_@

Antwort1

Bedenken Sie, dass die Zeichenfolge, aus der Sie Versionscode und Versionsname extrahieren möchten, immer in dem von Ihnen angegebenen Format vorliegen würde.

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

Angenommen, die obige Zeichenfolge wird unter dem Dateinamen gespeichert package_info. Dann verwenden Sieschneidenwäre einfacher und viel schneller:

  • Bekommen dasversionCode

    cut -d "'" -f 4 package_info
    
  • Bekommen dasversionName

    cut -d "'" -f 6 package_info
    
  • Die Kombination der beiden

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

Eine kurze Beschreibung des Schnitts:

cutDas Dienstprogramm extrahiert Teilzeichenfolgen basierend auf delimiter(standardmäßig Leerzeichen) und fields/characters.

  • Standardmäßig ist das Trennzeichen ein literal space, das kann geändert werden mit-d.
  • In Ihrem Fall ist das Trennzeichen'
  • -fweist cut an, die relativ nummerierten Felder (hier 4oder 6) auf der Grundlage des definierten Trennzeichens zu extrahieren.

Für einige praktische Erfahrungen im Schnitt,Besuche hierund fügen Sie gerne weitere Einzelheiten hinzu.

verwandte Informationen