正则表达式匹配和提取(Regular Expression match and extraction

2019-08-17 01:19发布

我写一个shell脚本,其中我需要匹配和提取模式一些帮助

ALARM_TYPE contain string 'Exception Type - timeOverThreshold Description - High CPU eHealth Alarm ID - 1000001'

我需要提取后的字符串Description -之前Alarm ID ,并将其存储在一个新varaible ... speciafically在这个例子中,我在寻找High CPU eHealth

我该怎么办是根本awksed作品或任何其他简单的事情。

Answer 1:

下面是你想用做一个直译GNU grep

var=$(grep -oP "(?<=Description - ).*(?= Alarm ID)" file)

或者用sed

var=$(sed 's/.*Description - \(.*\) Alarm ID.*/\1/' file)

测试:

echo "$var"

结果:

High CPU eHealth

你可以阅读更多有关前瞻与回顾后assersions 这里 。 HTH。



Answer 2:

sed 's/.*Description\(.*\)Alarm.*$/\1/g'


文章来源: Regular Expression match and extraction