Получить только часть uname -r в bash
Мне нужно получить только первые два числа команды "uname -r" в Bash
Пример регулярного выхода:
uname -r
3.5.0-18-generic
что я ожидаю, используя магические опции bash:
3.5
3 ответа
Решение
При условии, что вы хотите все до второй точки, это будет делать то, что вы хотите:
uname -r | cut -d. -f1-2
Сам uname не поддерживает обрезку вывода, афаик. Труба через разрез покажет вам поля 1 и 2 (-f1-2
), разделенные точками (-d.
)
Вы также можете сделать это с помощью расширения параметров:
$ r="$(uname -r)"
$ echo ${r%.*}
3.5
${VAR%pat}
не жадно удаляет pat
с конца VAR
, Обратите внимание, что pat
является шаблоном глобуса, то есть точка просто означает "точка", а звезда означает "любое число символов".