Вы определяете регулярное выражение для такой задачи.Предполагая, что ваши измерения соответствуют синтаксису, как в вопросе [0-9]x[0-9]
, вы можете сделать что-то вроде ниже.
Поддержка регулярных выражений в bash
позволяет сопоставлять и захватывать строки, которые будут заполнены в массиве BASH_REMATCH
.Индекс совпадающих элементов начинается с 1
Надлежащий сценарий может быть написан подробно, как показано ниже.
#!/usr/bin/env bash
regex='([[:digit:]]{1,})x([[:digit:]]{1,}).*$'
if [[ $url =~ $regex ]]; then
printf '%s x %s\n' "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}"
fi
Дружественная для командной строки версия будет делать
[[ $url =~ $regex ]] && { width="${BASH_REMATCH[1]}"; height="${BASH_REMATCH[2]}" ; }