我正在寻找一个在没有架构的情况下返回内核版本的命令。
uname -r返回:2.6.32-279.22.1.el6.x86_64但我只需要2.6.32-279.22.1.el6
我可以使用正则表达式执行此操作并将所有内容删除到最后一个点
答案 0 :(得分:1)
我不确定它有多便携,但您可以执行以下操作 -
uname -r | sed s / \ .`arch` //
示例 -
$ uname -r
2.6.32-358.6.2.el6.x86_64
$ uname -r | sed s / \ .`arch` //
2.6.32-358.6.2.el6
答案 1 :(得分:0)
鉴于可以使用正则表达式,您可以将字符串与^(.*)\.[^.]*$
匹配并获取第一个捕获组。
((.*)\..*
通常也适用于"贪婪"量词,但参考你的正则表达式引擎的参考。)
答案 2 :(得分:0)
你无法避免它。在内核构建期间,借助“本地版本 - 附加到内核版本”(http://lxr.linux.no/linux+ * / init / Kconfig#L56)配置选项,这些额外的“el6.x86_64”已设置,主要用于跟踪构建和发布版本。
因此,可能的解决方法如下:
uname -a | awk '{print $3}'