私は、単純な置換をやっている、これはコマンドラインで正常に動作します:Jenkinsfileパイプラインでこのsedコマンドをエスケープする方法は?
sed "s/pub Url =.*/pub Url = 'https:\/\/example.com:3207';/g" myfile.ts
私はJenkinsfile以内にそれを実行しようとしている、など40の後、私は右の引用脱出を取得することはできません構築します。しかし、次のエラーが発生することを
sh 'sed \\"s/pub Url =.*/pub Url = \\'https:\\\/\\\/example.com:3207\\';/g\\" myfile.ts'
:私が試したよう
WorkflowScript: 4: unexpected char: '\' @ line 4, column 49. ub Url =.*/pub Url = \\'https:\\\/\\\/ex
が、私は感じて、それは次のようになりますかなり確信して
数多くの変種がありますが、何も作用していません。ここで
私は取得しています最も一般的なエラーの中で:問題
sed: -e expression #1, char 1: unknown command: `"'
をエスケープを指している私は本当にただおそらく私が間違ってやっている正確に何を参照し、どこまで知ることができるパイプラインの専門家を必要としますそれを引用する。
ここに記載されているように:https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4これはパイプラインファイルでこの種のものと戦うことは珍しくありません。試行錯誤のようです。
シェルスクリプトで最初に動作する 'sed'を入れて、Jenkinsfileから実行できますか?あなたの2番目のサンプルは読めない領域に接しているので、エスケープするすべてのオプションからオプトアウトすればあなた自身が好意的になるかもしれません... ':-)' – halfer
Jenkinsfileからやらなければならない場合は、あなたが提供したサンプル?あなたは「このようなもの」や「何十種類もの変種」を試してきたと言い、ここのサンプルがここでエラーを生成するかどうかは明らかではないので、質問は多少曖昧です。 – halfer
質問を編集しました。私はsedコマンドを簡素化し、ゆっくりと構築することで解決策に近いと思う。 – emmdee