用于匹配Maven工件坐标的正则表达式(组:工件:版本)

时间:2013-11-11 20:52:29

标签: regex bash maven awk

我正在尝试找到一个强大的正则表达式,可以使用grep和awk从Bash中的日志中过滤出maven artifact GAV。

这是当前的正则表达式以及打破它的GAV。

我紧紧抓住日志以查找错误:

GAVS="`grep -e "$error" $LOG  | awk '{NF++;while(NF-->1)print $NF}' | grep "[0-9]$" | grep ':'`"

这会创建一个GAV列表,我从中提取单个GAV。

GAV="`for gav in $(echo $GAVS | tr " " "\n"); do echo $gav ; done`"

这适用于大多数情况,但由于看起来像这样的GAV,现在又一次打破:

org.apache.camel:camel-maven-plugin:jar:2.12.0.abcxy-123456

这应该是这样的

org.apache.camel:camel-maven-plugin:jar:2.12.0

所以基本上从最后一段时间开始删除所有内容。

1 个答案:

答案 0 :(得分:1)

  

So essentially striping away the everything from the last period...including the period.

使用纯BASH方式:

s='org.apache.camel:camel-maven-plugin:jar:2.12.0.abcxy-123456'
echo "${s%.*}"
org.apache.camel:camel-maven-plugin:jar:2.12.0