Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 匹配Maven工件坐标的正则表达式(组:工件:版本)_Regex_Bash_Maven_Awk - Fatal编程技术网

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

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 "

我试图找到一个健壮的正则表达式,它可以使用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 " " "\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脚本中完成上述所有操作。发布一些小样本输入和预期输出,我们可以向您展示如何。