【问题标题】:Get only part of uname -r in bash在 bash 中仅获取 uname -r 的一部分
【发布时间】:2012-10-31 17:21:04
【问题描述】:

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

常规输出示例:

uname -r
3.5.0-18-generic

我对使用魔法 bash 选项的期望:

3.5

【问题讨论】:

    标签: linux bash ubuntu uname


    【解决方案1】:
    uname -r | sed 's/\([0-9]\+\.[0-9]\+\)\..*/\1/'
    

    【讨论】:

    • 您知道如何将其捕获到变量中吗?
    • 我承认使用Yefim的方案效率更高,不需要sed。
    • @Ba7a7chy VER=$(uname -r | cut -d. -f1-2)
    【解决方案2】:

    假设您想要第二个点之前的所有内容,这将满足您的需求:

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

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

    【讨论】:

      【解决方案3】:

      您也可以通过参数扩展来完成此操作:

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

      ${VAR%pat} 非贪婪地从VAR 的末尾删除pat。请注意,pat 是一个 glob 模式,即 dot 仅表示“点”,star 表示“任意数量的字符”。

      【讨论】:

        猜你喜欢
        • 2011-07-02
        • 1970-01-01
        • 2011-08-03
        • 2014-06-03
        • 1970-01-01
        • 1970-01-01
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多