【发布时间】:2012-10-31 17:21:04
【问题描述】:
我只需要在 bash 中获取“uname -r”命令的前两个数字
常规输出示例:
uname -r
3.5.0-18-generic
我对使用魔法 bash 选项的期望:
3.5
【问题讨论】:
我只需要在 bash 中获取“uname -r”命令的前两个数字
常规输出示例:
uname -r
3.5.0-18-generic
我对使用魔法 bash 选项的期望:
3.5
【问题讨论】:
uname -r | sed 's/\([0-9]\+\.[0-9]\+\)\..*/\1/'
【讨论】:
假设您想要第二个点之前的所有内容,这将满足您的需求:
uname -r | cut -d. -f1-2
uname 本身不支持削减输出,afaik。管道通过切割将显示字段 1 和 2 (-f1-2),由点 (-d.) 分隔
【讨论】:
您也可以通过参数扩展来完成此操作:
$ r="$(uname -r)"
$ echo ${r%.*}
3.5
${VAR%pat} 非贪婪地从VAR 的末尾删除pat。请注意,pat 是一个 glob 模式,即 dot 仅表示“点”,star 表示“任意数量的字符”。
【讨论】: