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

时间:2018-08-09 07:44:21

标签: regex bash

示例字符串:

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

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

我该如何使用bash脚本?

我尝试了以下

代码:-

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

结果(不正确的一个)

type1
type2-subtype

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

2 个答案:

答案 0 :(得分:3)

Sub trendlucid()
    Dim numOfRows As Long ' use Long instead of Integer to avoid overflow issue for more thna some 32k rows or so
    Dim activeRow As Integer
    With ActiveSheet.UsedRange ' reference "active" sheet 'UsedRange' range
        numOfRows = .Rows.Count ' count the number of rows of referenced range
        activeRow = numOfRows
        Do While activeRow > 1
            .Rows(activeRow).EntireRow.Delete ' reference 'UsedRange' 'Rows()' instead of 'ActiveSheet' 'Rows()'
            activeRow = activeRow - 2
        Loop
    End With
End Sub

您可以使用cat file app:mob-type1-subtype:1.0.2 app:mob-type2:1.0.1

awk

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

如果您在shell变量中输入了以下内容,这是一个type1 type2 解决方案:

bash

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

答案 1 :(得分:0)

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

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

它将给出如下输出:

type1

type2