代码之家  ›  专栏  ›  技术社区  ›  SoaAlex

在bash中最后一个所需字符上拆分字符串

  •  0
  • SoaAlex  · 技术社区  · 3 年前

    我有一个文件名如下: my-file-1.2.0.jar

    我想通过在最后一页拆分来提取此文件的版本 - . 因此,我将有以下输出: 1.2.0.jar

    我还想摆脱这个问题。jar,如果可以使用相同的命令获得此输出: 1.2.0

    我如何用bash实现这一点?

    1 回复  |  直到 3 年前
        1
  •  1
  •   choroba    3 年前

    使用参数展开:

    #! /bin/bash
    filename=my-file-1.2.0.jar
    version=${filename##*-}
    version=${version%.jar}
    echo "$version"
    

    ## 从左侧移除最大的匹配图案。 % 从右侧移除最短的匹配图案(但是 .jar 不包含通配符,因此使用 %% 因为最长的比赛也同样有效)。

        2
  •  1
  •   anubhava    3 年前

    下面是使用 extglob :

    shopt -s extglob
    s='my-file-1.2.0.jar'
    echo "${s//+(.jar|*-)}"
    
    1.2.0
    
    推荐文章