Извлечь версию из имени файла

Я хочу извлечь номер версии из имени моего zip-файла сборки.

имя сборки: build102p12.zip

Я хочу извлечь из него 102p12 .

Я использую среду Linux: rhel 6.

-2
01.09.2017, 15:25
1 ответ

Вы хотите удалить подстроки buildи .zipиз строки build102p12.zip.

Предполагая, что у вас есть исходная строка в переменной оболочкиname:

name='build102p12.zip'

name="${name#build}"  # remove prefix "build"
name="${name%.zip}"   # remove suffix ".zip"

$nameтеперь будет строкой 102p12.

Дополнительную информацию о подстановке переменных ${parameter#word}и ${parameter%word}см. в руководстве по вашей оболочке.


Если у вас есть линия (и больше ничего)

build name : build102p12.zip

в файлеbuildinfo:

$ buildversion="$( grep -oE '[0-9]+p[0-9]+' buildinfo )"

Расширенное регулярное выражение [0-9]+p[0-9]+будет соответствовать всему, что выглядит как NNNpNNN, где каждое NNN— это некоторая последовательность цифр. Это предполагает, что это происходит только один раз в файле buildinfo.

6
28.01.2020, 05:14

Теги

Похожие вопросы