SED: как вытащить строку версии

Я хотел бы использовать sed, чтобы вытащить номер версии от команды:

svnversion --version

что дает вывод вида:

svnversion, version 1.6.2 (r37639)
   compiled May 10 2009, 12:41:21

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

и после обработки с помощью sed, я хотел бы просто:

1.6.2

до сих пор у меня есть это чудовище (из-за моего невежества):

svnversion --version | sed s/[wa-zA-Z//():,]*//g | sed 's/[ ]//' | sed 's/[ ]//' | sed 's/[ ][0-9 ./n/-]*//'

Я уверен, что есть простое элегантное решение, которое эксперт может легко обеспечить.

2
задан valerie
09.01.2023 19:15 Количество просмотров материала 2489
Распечатать страницу

3 ответа

Я знаю, что это не с помощью sed, но на основе вашего вывода это проще.

svnversion --version | head -1 | awk '{print }'

Если вы имеете perl доступное...

svnversion --version | perl -lne 'print  if /version (\d+.\d+.\d+)/'
5
отвечен Darren Hall 2023-01-11 03:03

попробуйте это:

svnversion --version | sed -n '/version/ s/.*version \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*//p'

он говорит:

  • -n --- не выводить автоматически.
  • /version/ --- в строках, содержащих строку "version",
  • s/ -заменить что
  • .*version и .* --- между [последовательность нуля или более любого символа, строка" version", a пробел] и [Пробел, последовательность нуля или более любого символа],
  • \(...\) --- захват
  • [0-9]\+ --- последовательность из одной или нескольких цифр
  • \. --- последовал буквальный срок
  • тогда больше цифр и точек,
  • // --- что было захвачено в первый (и только в этом случае) скобки
  • p --- и явно распечатать его.

поскольку автоматическая печать отключена и выбрана только строка, включающая "версия", другие строки игнорируются.

4
отвечен Dennis Williamson 2023-01-11 05:20

еще один способ сделать это без sed: svnversion --version | head -1 | cut -d" " -f3

1
отвечен yanchenko 2023-01-11 07:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх