正则表达式匹配和提取

时间:2013-02-18 07:56:17

标签: shell scripting sed awk

我正在编写一个shell脚本,我需要一些帮助来匹配和提取模式

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

我需要在Description -之后和Alarm ID之前提取字符串并将其存储在新的变量中...在此示例中,我正在寻找High CPU eHealth

我如何才能完成awksed或任何其他简单的事情。

2 个答案:

答案 0 :(得分:1)

以下是您使用GNU grep

想要做的事情的字面翻译
var=$(grep -oP "(?<=Description - ).*(?= Alarm ID)" file)

sed

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

测试:

echo "$var"

结果:

High CPU eHealth

您可以阅读有关前瞻和后瞻性声明here的更多信息。 HTH。

答案 1 :(得分:0)

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