Извлечь информацию о версии из строки

Извлечь информацию о версии из строки

Я хочу извлечь 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Утилита извлекает подстроку на основе delimiter(по умолчанию пробел) и fields/characters.

  • По умолчанию разделителем является literal space, который можно изменить с помощью-d.
  • В вашем случае разделителем является'
  • -fсообщает cut о необходимости извлечения полей, относительно пронумерованных (здесь 4или 6), на основе определенного разделителя.

Для практического ознакомления с резкой,посетите здесьи не стесняйтесь добавлять больше подробностей.

Связанный контент