Regex 匹配Maven工件坐标的正则表达式(组:工件:版本)
我试图找到一个健壮的正则表达式,它可以使用grep和awk从Bash中的日志中过滤出maven工件GAV 这是我现在的正则表达式,还有打破它的GAV 我首先刷新日志以查找错误:Regex 匹配Maven工件坐标的正则表达式(组:工件:版本),regex,bash,maven,awk,Regex,Bash,Maven,Awk,我试图找到一个健壮的正则表达式,它可以使用grep和awk从Bash中的日志中过滤出maven工件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 "
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
因此,本质上是把所有的东西都从上一个时期剥离出来,包括上一个时期
因此,本质上是将上一个期间的所有内容剥离出来……包括该期间。
使用纯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
因此,本质上是将上一个期间的所有内容剥离出来……包括该期间。
使用纯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
您可以在一个简单的awk脚本中完成上述所有操作。发布一些小样本输入和预期输出,我们可以向您展示如何使用。您可以在一个简单的awk脚本中完成上述所有操作。发布一些小样本输入和预期输出,我们可以向您展示如何。