Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
groovy管道中的sed命令_Sed_Jenkins Pipeline - Fatal编程技术网

groovy管道中的sed命令

groovy管道中的sed命令,sed,jenkins-pipeline,Sed,Jenkins Pipeline,我正在Alfred管道中的groovy脚本中使用sed命令 下面是我试图执行的sed命令,但得到错误意外标记'(' 我基本上是用用户定义的($ccLOBCODE)值将任何passcode替换为LOBCODE 并退出结束括号。(^)) 例如:LOBCODE in(10021031009)将被LOBCODE in(1007)替换。(假设1007是在**ccLOBCODE中传递的值) 感谢您的输入。在执行REGEXP to sed时,最好将REGEXP用引号括起来,因为REGEXP中使用的许多特殊字符

我正在Alfred管道中的groovy脚本中使用sed命令

下面是我试图执行的sed命令,但得到错误意外标记
'('

我基本上是用用户定义的($ccLOBCODE)值将任何passcode替换为LOBCODE

并退出结束括号。
(^))

例如:LOBCODE in(10021031009)将被LOBCODE in(1007)替换。(假设1007是在**ccLOBCODE中传递的值)


感谢您的输入。

在执行REGEXP to sed时,最好将REGEXP用引号括起来,因为REGEXP中使用的许多特殊字符对shell具有特殊意义。最安全的是单一报价

在这种情况下,RE具有动态部分($CCLobcode,在问题中也拼写为CCLobcode),这将需要一些转义,否则它将不会被运行时值替换

还要注意,REGEXO被修改为替换括号后面的所有字符,直到“'),而不仅仅是第一个:
([^)*]

sh "echo \"sed -i \"s/LOBCODE IN ([^)*]/LOBCODE IN (${CCLobcode}/ig\" /bidata/testing/dma_if/sqlfile_if/incoming/${listvalue}_${database}/.sql\" >> ./ssh_dma_script"

恐怕我找不到任何实际的好处,可以这样说:

sh "echo \"sed ..."
而不是:

echo "sed ..."
此外,如果没有
-c
选项,
sh string
将无法工作

请您尝试以下方法:

echo "sed -i 's/LOBCODE IN ([^)]*/LOBCODE IN (${CCLobcode}/ig' '/bidata/testing/dma_if/sqlfile_if/incoming/${listvalue}_${database}/'*.sql" >> ./ssh_dma_script

请记住引用
sed
命令。

您能否将“/ssh\u ma_script”的当前输出发布到,以便评估是否存在其他问题。根据目前的信息很难判断出哪里出了问题。下面的答案假设除了“意外令牌…”之外没有其他错误
echo "sed -i 's/LOBCODE IN ([^)]*/LOBCODE IN (${CCLobcode}/ig' '/bidata/testing/dma_if/sqlfile_if/incoming/${listvalue}_${database}/'*.sql" >> ./ssh_dma_script