【问题标题】:How to get the MySQL version如何获取 MySQL 版本
【发布时间】:2014-12-18 11:56:05
【问题描述】:

有以下字符串。

[root@fedoravm001 ~]# mysql -V

mysql  Ver 14.14 Distrib 5.5.38, for Linux (x86_64) using readline 5.1

从上面我可以解析并获得所需的版本号,如下所示:

[root@fedoravm001 ~]# mysql -V | awk '{print $5 }' 
5.5.38,

我不想在字符串 5.5.38 的末尾加上逗号

答案是:mysql -V | awk '{打印 $5}' | awk 'gsub(",$","")'

【问题讨论】:

  • 将其传递给cut -f1 -d',',即mysql -V|awk '{print $5}'|cut -f1 -d','
  • 如果有用的话,rpm -q --qf '%{version}\n' 也会为您提供 RPM 软件包版本。在您的管道中使用awk '{sub(/,/, "",$5); print $5}'

标签: mysql awk


【解决方案1】:

或使用grep

mysql -V | grep -Eo "\d+\.\d+\.\d+"

一位或多位数字后跟一个点,然后是一位或多位数字,后跟一个点,后跟一位或多位数字。

或者将awk 与逗号或空格的备用字段分隔符一起使用:

mysql -V | awk -F'[ ,]+' '{print $5}'

【讨论】:

    【解决方案2】:

    使用 tr 命令删除多余的 ',',例如:

    mysql -V | awk '{print $5 }' | tr -d ,
    

    【讨论】:

    • mysql -V | awk '{打印 $5}' | awk 'gsub(",$","")'
    • 一个更好的 awk mysql -V | awk '{gsub(",$", "", $5);打印 $5}'
    • 感谢 almas shaikh 回答我的问题,感谢您的快速回复。
    • 欢迎您@tony。不要忘记通过接受任何您认为对您有帮助的答案来结束这个问题,以便以后可以帮助其他人。
    • 你有没有试过用不同的用户启动 mysql。比如 ls -l /var/lib/mysql 给出的意思是我们得到 -rw-rw----。 1 mysql mysql 16384 Nov 22 01:33 aria_log.00000001,相反,我们可以这样做正确-rw-rw----。 1 joe joe 16384 Nov 22 01:33 aria_log.00000001 我可以得到它,但是 mysql 的启动没有什么问题
    【解决方案3】:

    多合一awk

    mysql -V | awk '{sub(/,$/,"",$5);print $5}'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-23
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多