Linux Red Hat Enterprise Linux服务器6.9版(圣地亚哥)
问题
我有两个Jenkins作业,它们都调用另一个公共/可重用的下游作业(使用regex来选择其rpm)。实际的代码是用Ruby编写的(在这里我使用的是::Dir.glob("<pattern>",'')
,它在选择正确的rpm名称时不起作用(没有给出任何错误),但这里我只关注regex部分。
在job1中,在我的工作区中,我看到myrpm.rpm
和myrpm-extra.rpm
。
在job2中,在我的工作区中,我看到了myrpm-3.0.0.1027-2018_12_21_121519.noarch.rpm
和myrpm-extra-3.0.0.1027-2018_12_21_121519.noarch.rpm
的rpms,这是我通过一些AQL从Artifactory下载这些文件后得到的。
一旦从Aritfactory(即Jenkins工作区中的可用资源)下载了rpm,我就使用这个常见的下游作业来选择所需的给定rpm
使用"${rpmname}*.rpm"
regex。
问题是,当我将rpmname
参数值作为“myrpm”传递时,逻辑是选择myrpm-extra.rpm
(在Job1中)或myrpm-extra-3.0.0.1027-2018_12_21_121519.noarch.rpm
(Job2)而不是选择正确的值(非额外的值),因为-
字符的顺序是由ASCII序列决定的。
我测试了regex并查看了为什么在最后一个命令中没有看到预期的输出。正则表达式中的1?
不是会给我们任何一行带有arun
字符出现的0 or 1
吗?
[giga@linux-server giga]# echo -e "arun\narun1\narun2\narun11" |grep "arun"
arun
arun1
arun2
arun11
[giga@linux-server giga]#
[giga@linux-server giga]# echo -e "arun\narun1\narun2\narun11" |grep "arun1"
arun1
arun11
[giga@linux-server giga]#
[giga@linux-server giga]# echo -e "arun\narun1\narun2\narun11" |grep "arun1?"
[giga@linux-server giga]#
问题:
一。如果我使用
1
,为什么会这样?2。为什么它不能与
egrep
一起工作,而grep
手册页/示例告诉它支持它?三。如果我将
grep
作为作业参数的值传递,那么它可以在Job1和Job2中工作,其中rpm filename包含短的和完整的rpm名称。此处:https://www.cyberciti.biz/faq/grep-regular-expressions/(搜索grep正则表达式运算符)和
myrpm
显示: Repetition
A regular expression may be followed by one of several repetition operators:
---------------------------------------------------------------
? The preceding item is optional and matched at most once.
---------------------------------------------------------------
* The preceding item will be matched zero or more times.
+ The preceding item will be matched one or more times.
{n} The preceding item is matched exactly n times.
{n,} The preceding item is matched n or more times.
{,m} The preceding item is matched at most m times. This is a GNU extension.
{n,m} The preceding item is matched at least n times, but not more than m times.
最佳答案
egrep
与grep -E
相同,在您的情况下,使用的regex
需要-E
或-P
来支持?
。
请搜索不同的regex
支持。有POSIX
、Extended
和Perl
等。
资源:
POSIX Basic and Extended Regular Expressions
Perl regular expressions
Regular expression