我正在做一个简单的替换,这在命令行中运行良好:
Javascript
我试图在Jenkins文件中运行它,就像之后的40版本一样,我无法获得正确的转义引用。
非常确定它看起来像这样:
unknown
然而,这会导致以下错误:
sed "s/pub Url =.*/pub Url = 'https:\/\/example.com:3207';/g" myfile.ts
我觉得我已经尝试过几十种变种但没有任何效果。
以下是我遇到的最常见错误之一:指出逃避问题
sed:-e表达式#1,字符1:未知命令:`"'
我真的只需要一位管道专家,他可能会看到我做错了什么,知道在哪里引用它。
如前所述:https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4在管道文件中对抗此类内容并不常见,似乎只是反复试验。
答案 0 :(得分:0)
经过多次试验和错误后,这很有效。
看起来我必须在命令周围使用三重单引号。好东西我不需要插值!
sh '''sed \"s/pub Url =.*/pub Url = \\'https:\\/\\/example.com:3207\\';/g\" afile.txt'''
希望这有助于未来与此斗争的人!
答案 1 :(得分:-1)
要添加更多内容...我在 CLI 中运行正常的 sed -i 's/\_/\//g' abc.txt
命令有问题,但导致 jenkins 中出现 unxpected char \
错误,所以,我有替换这个:
sed -i 's/\_/\//g' abc.txt
与
sed -i "s/\\_/\\//g" abc.txt
从 jenkins 中删除此错误。