
Я хочу извлечь versionCode
и versionName
из этой строки:
package: name='com.turastory.mysampleapp' versionCode='11' versionName='1.1.4'
Я думаю, что мне следует выполнить следующие действия:
- найти
versionCode
в строке. - найти ' (одинарная кавычка), начиная с позиции, которую мы нашли на шаге 1.
- считывать символы до тех пор, пока не появится еще одна одинарная кавычка.
- Повторите тот же процесс (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
), на основе определенного разделителя.
Для практического ознакомления с резкой,посетите здесьи не стесняйтесь добавлять больше подробностей.