我有一个Jenkins文件,其中我需要一个来自我的.csproj文件的属性(dotnet核心项目)
我试过这个:
def versionPrefix = sh(script: 'cat ./src/project.csproj | grep (?<=<VersionPrefix>).*(?=</VersionPrefix>)')
我知道我可能很遥远,所以我不一定要寻找接近此的东西,但我正在寻找一种不需要插件的解决方案(最好)。
答案 0 :(得分:2)
答案 1 :(得分:2)
无管道解决方案
然后配置为图像
在图像中,我从build.xml文件中获取了版本,&#34; -o&#34; egrep中的arg(也适用于grep)是仅返回我想要的部分而不是整行,其余的是纯正则表达式以匹配数字版本。 (点),类似
<强> 1.3.13 强>
使用管道解决方案
只需根据需要调整图像中的grep
def versionPrefix = sh(script: 'grep -o (?<=<VersionPrefix>).*(?=</VersionPrefix>) ./src/project.csproj')
答案 2 :(得分:0)
我知道已经回答了这个问题,但是如果其他任何人都需要此行为并且grep -o
不起作用,那么以下命令可以起作用:
def versionPrefix = sh([returnStdout: true, script: 'sed -n "s/.*<VersionPrefix>\\([^<]*\\)<\\/VersionPrefix>.*/\\1/p" ./src/project.csproj'])
这是因为-至少有一些-grep变体不支持先行/后备。