2017-07-07 16 views
-1

jenkinsサーバーにはジョブが多すぎます。ほとんどのジョブには、Poll SCMとしてBuildトリガーがあります。私はすべての仕事のためにそのトリガーを取り除きたい。簡単な方法を探しています。私は、ビルドトリガープロパティが設定されるたびにconfig.xmlにはthis-sedを使用して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> 

投票SCMフラグがfalseに設定されているときは常にconfig.xmlのこの同じ要素がfollows-

<triggers/> 
ようであるを持っていることがわかり

私はsedを使って上記のトリガータグをこれに置き換える簡単な方法を探していますが、sedを使用することはできません。

は私が仕事フォルダからこれを試み、それはとても基本的に、私は開始と終了に伴い、上記のトリガー要素の内容全体を置き換えたい

sudo find . -name "config.xml" -print0 | sudo xargs -0 sed -i '' -e 's|<triggers>.*<\/triggers|<triggers\/>|g' 

をワーク・これだけ

でタグをトリガしません。
<triggers/> 
+0

これまでに試した「sed」試合はどこにありますか? –

+0

これを試してもうまくいきませんでした。 -name "config.xml" -print0 | sudo xargs -0 sed -i "-e 's | 。* <\/triggers | | g ' – datastax

+0

正確にあなたが( - >から)に変更したいのかどうかは不明です。多分あなたの質問にそれを追加してください。あなたの正規表現のパターンから、トリガータグ間のすべてを一掃し、 ''に置き換えたいと思うでしょうか? –

答えて

1

sedはストリームエディタであり、ファイルを1行ずつ読み込みます。あなたのパターンはファイル内の複数の行にまたがるため、一致しないのはそのためです。

あなたは sedは、置換を行う前に、パターンスペースにファイル全体を読んで行う必要がありますいずれか

...

sed ':a;N;$!ba; s|<triggers>.*<\/triggers>|<triggers\/>|g' example.xml 

...または(xmlstarletのようなXMLファイルの好ましく適し、)別のツールを使用します。

xmlstarlet ed -O -u /triggers -v '' example.xml 
+0

sedのサンプルは完全に正常に動作しました。これを提案してくれてありがとう@Lev Levitsky。これは私にとって非常に便利で、数多くの仕事は瞬く間に変わりました。ありがとう。 – datastax