在bash中只获取uname -r的一部分

时间:2012-11-12 09:25:27

标签: linux bash ubuntu uname

我需要在bash中只获得前两个“uname -r”命令的数字

常规输出的例子:

uname -r
3.5.0-18-generic

我期望使用魔术打击选项:

3.5

3 个答案:

答案 0 :(得分:6)

假设你想要在第二个点之前的所有内容,这将做你想要的:

uname -r | cut -d. -f1-2

uname本身不支持削减输出,afaik。通过切割的管道将显示字段1和2(-f1-2),由点(-d.

分隔

答案 1 :(得分:3)

uname -r | sed 's/\([0-9]\+\.[0-9]\+\)\..*/\1/'

答案 2 :(得分:2)

你也可以通过参数扩展来实现这个目标:

$ r="$(uname -r)"
$ echo ${r%.*}
3.5

${VAR%pat}非贪婪地删除pat末尾的VAR。请注意pat是一个glob模式,即dot表示“dot”,而star表示“any-number-of-chars”。