Выражение
A sed
может быть довольно общим и работать до тех пор, пока ваша версия остается в виде
v[any number of digits].[any number of digits]
Чтобы использовать sed
, вы можете просто передать вывод hugo version
к вашему sed
выражению, например
$ hugo version | sed 's/^.*\(v[0-9][0-9]*[.][0-9][0-9]*\).*$/\1/'
Пример использования / Вывод
С вашим выводом, который приведет к:
$ hugo version | sed 's/^.*\(v[0-9][0-9]*[.][0-9][0-9]*\).*$/\1/'
v0.49
Вы можете записать результат в переменную, используя подстановка команд , например,
hversion=$(hugo version | sed 's/^.*\(v[0-9][0-9]*[.][0-9][0-9]*\).*$/\1/')
Объяснение sed
Выражение
Разбивкаsed
выражение - нормальная подстановка s/find/replace/
, где:
find
равно: ^.*
- и количество символов с начала, \(
- начать группу захвата, чтобы сохранить последующие данные, v
- символ 'v'
, [0-9][0-9]*
- минимум 1 цифра, за которой следует ноль или более цифр, [.]
- десятичная точка (или точка), за которой следует [0-9][0-9]*
- как минимум 1 цифра, за которой следуют ноль или более цифр, \)
- конец группы захвата с сохранением захваченного контента, .*$
- все символы в конце строки.
replace
is: \1
одиночная обратная ссылка на текст из первой группы захвата.
Это его масштаб. Обычное замещение с использованием одной обратной ссылки, которая будет работать для v0.49
так же, как для v243.871
.