1

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

这是我拥有的当前正则表达式以及破坏它的 GAV。

我拳头 grep 日志中的错误:

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

所以基本上剥离了最后一个时期的所有内容。

4

1 回答 1

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
于 2013-11-11T21:03:26.933 回答