Я написал скрипт, который обновляет версию определенного файла. Мне нужно проверить, что ввод для пользователя в формате версии, поэтому я не заканчиваю добавлять числа, которые не нужны в этих важных файлах. Я сделал это, добавив новое значение version_check, где я удаляю свой шаблон регулярных выражений, а затем проверяю if.
version=$1
version_checked=$(echo $version | sed -e '/[0-9]\+\.[0-9]\+\.[0-9]/d')
if [[ -z $version_checked ]]; then
echo "$version is the right format"
else
echo "$version_checked is not in the right format, please use XX.XX.XX format (ie: 4.15.3)"
exit
fi
Это прекрасно работает для XX.XX и XX.XX.XX, но также допускает XX.XX.XX.XX и XX.XX.XX.XX.XX и т. Д., Поэтому, если пользователь допустит ошибку, он введет неправильный ввод данные в файле. Как я могу заставить регулярное выражение sed разрешить ТОЛЬКО 3 пары чисел, разделенных точкой?