Как удалить первую точку перед первым номером?

Как удалить первую точку перед первым номером?

Например

У меня есть следующий файл

more file Version …………2.465.76.8.332 

Я хочу получить только номер версии – 2.465768.332

  • bash расширяется до того же значения вместо значения строки за строкой в ​​команде sed
  • Пустой файл без grep, впоследствии обрабатывающий его как двоичный файл
  • Почему не матч SHA?
  • Добавить столбцы в текстовый файл с заданным интервалом в Bash
  • Почему sed дает мне ошибку в отношении неиспользуемого `s '?
  • Вставьте новые строки с отсутствующими значениями (NA)
  • Копировать файл при замене текста в нем
  • Удалить строку с специальными символами
  • 3 Solutions collect form web for “Как удалить первую точку перед первым номером?”

    Предположим, что удаление точек из номера версии является опечаткой.

    sed может легко выполнять работу:

     echo 'Version …………2.465.76.8.332' | sed 's/^[^0-9]*//' 

    Чтобы извлечь только номер версии из файла, номер в это первая строка, начинающаяся с «Версия», и ничего не следует за номером версии, вы могли бы сделать:

     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 
     grep -oP 'Version.*?\K[\d.]+$' filename 
    Linux и Unix - лучшая ОС в мире.