从文件中提取版本

时间:2018-01-25 08:29:21

标签: linux bash shell awk sh

我有一个文件file1,如下所示 version=7.2.3.cdead_rcd345

我使用以下命令,但它无法正常工作 cat file1 | awk -F'=' '{print $2}

没有给出版本号

4 个答案:

答案 0 :(得分:3)

Awk <number>.<number>[.number]格式提取版本号的解决方案:

awk -F'[=_]' '{ sub(/\.[^.]*$/, "", $2); print $2 }' file1
7.2.3

答案 1 :(得分:1)

如果您只需要7.2.3作为答案,请尝试sed

sed -r 's/.*=(.*)\..*/\1/g' file1

OUTPT:

7.2.3

答案 2 :(得分:1)

也许你在命令的最后遗漏了一个'

awk -F"=" '{print $2}' file1

输出:

7.2.3.cdead_rcd345wq

答案 3 :(得分:1)

您可以使用以下命令之一:

  1. awk 没有 cat,因为这里没有意义
  2. <强>命令:

    awk -F'=' '{print $2}' file1
    

    <强>输出:

    7.2.3.cdead_rcd345wq
    
    1. 甚至更好直接使用grep
    2. <强>命令:

      grep -Po '(?<=version=).*' file1
      

      <强>输出:

      7.2.3.cdead_rcd345wq
      

      <强>试验:

      enter image description here

      最后但并非最不重要的是,如果您只需要版本号(7.2.3),则可以使用以下命令:

      $ grep -Po '(?<=version=)\d\.\d\.\d' file1
      7.2.3