我正在尝试找到一个强大的正则表达式,可以使用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
所以基本上从最后一段时间开始删除所有内容。
答案 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