【发布时间】:2017-12-12 07:05:31
【问题描述】:
我们的 jenkins 服务器有太多作业,并且大多数作业都有构建触发器作为轮询 SCM。我想删除所有工作的触发器。寻找一种简单的方法来做到这一点。我看到,每当设置构建触发器属性时,config.xml 都有这个-
<triggers>
<hudson.triggers.SCMTrigger>
<spec>
# poll infrequently and rely on Stash webhooks to trigger builds
@daily
</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
当 Poll SCM 标志设置为 false 时,config.xml 中的相同元素如下-
<triggers/>
我正在寻找一种简单的方法,使用 sed 来替换上面的 triggers 标记,但我无法使用 sed 来获取它。
我从工作文件夹中尝试过,但它不起作用-
sudo find . -name "config.xml" -print0 | sudo xargs -0 sed -i '' -e 's|<triggers>.*<\/triggers|<triggers\/>|g'
所以基本上我想只用这个替换上面触发器元素的全部内容以及开始和结束触发器标签
<triggers/>
【问题讨论】:
-
到目前为止您尝试过的
sed尝试在哪里? -
试过这个,但它不起作用 - sudo find 。 -名称“config.xml”-print0 | sudo xargs -0 sed -i '' -e 's|
.*|g' -
不清楚你到底想改变什么(从 -> 到);也许将其添加到您的问题中。从您的正则表达式模式的外观来看,您似乎想清除触发器标签之间的所有内容并替换为
<triggers/>? -
还有一个问题,
标签之间的行数是否总是一样的?