Предполагаю, что удаление точек из номера версии - это опечатка.
sed
легко справится с этой задачей:
echo 'Version …………2.465.76.8.332' | sed 's/^[^0-9]*//'
Чтобы извлечь только номер версии из файла, номер которого является первой строкой, начинающейся с 'Version', и за номером версии ничего не следует, вы можете сделать:
sed -n '0,/^Version/ s/^Version[^0-9]*//p' file
Используя sed
, вы могли бы сказать:
sed -n '/Version/{s/^[^0-9]*//;s/\([^.]*\.[^.]*\)\./\1/p}' filename
Для вашего примера ввода он выдаст:
2.46576.8.332
Как упоминалось в комментарии, не совсем ясно, каков желаемый результат. Если это ожидаемый результат , как указано в теле вопроса, вы можете использовать awk
для улучшения читаемости:
sed -n '/Version/{s/^[^0-9]*//p}' inputfile | awk -F. '{print $1,$2$3$4,$5}' OFS=.
, что даст:
2.465768.332