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

如何在bash中从字符串中获取特定的单词

  •  1
  • Galet  · 技术社区  · 6 年前

    字符串示例:

    app:mob-type1-subtype:1.0.2
    app:mob-type2:1.0.1
    

    上面是我的示例字符串,我想从上面的字符串中获取“type”值。

    如何使用bash脚本?

    我已经试过了

    代码:-

    res="${element#*-}"
    echo $res| awk -F : '{ print $1 }'
    

    结果(不正确)

    type1
    type2-subtype
    

    但我只想得到type1和type2值,而不是子类型。我怎样才能做得更好?

    2 回复  |  直到 6 年前
        1
  •  3
  •   anubhava    6 年前
    cat file
    
    app:mob-type1-subtype:1.0.2
    app:mob-type2:1.0.1
    

    使用 awk 你可以:

    awk -F '[:-]' '{print $3}' file
    

    type1
    type2
    

    这是一个 bash 解决方案如果您在shell变量中有输入:

    IFS='[:-]' read -ra arr <<< 'app:mob-type1-subtype:1.0.2'
    echo "${arr[2]}"
    

    type1
    
        2
  •  0
  •   Randeep Singh    6 年前

    下面是一个解决方案,考虑到您的文本在a.txt中

    cat a.txt | grep -Eo "type[0-9]+"
    

    输出如下:

    类型1

    类型2