Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Jenkins shell脚本: sed:-e表达式#1,字符54:未终止的‘s’命令

Jenkins shell脚本: sed:-e表达式#1,字符54:未终止的‘s’命令
EN

Stack Overflow用户
提问于 2019-11-29 12:56:58
回答 2查看 481关注 0票数 1
代码语言:javascript
运行
AI代码解释
复制
  stage('adjust Dockerfile') {
    steps {
      script {
            TAG = sh(returnStdout: true, script: 'echo 123456')
            sh 'sed -i "s/name:TAG/name:\"${TAG}\"/g" Dockerfile'

      }
    }
  }

结果是在Jenkinsfile的sh命令中变量标记没有被替换。

代码语言:javascript
运行
AI代码解释
复制
+ sed -i s/name:TAG/name:/g Dockerfile 

如果我更改为

代码语言:javascript
运行
AI代码解释
复制
            TAG = sh(returnStdout: true, script: 'echo 123456')
            sh 'sed -i "s/name:TAG/name:${TAG}/g" Dockerfile'

如果我像这样改变引号

代码语言:javascript
运行
AI代码解释
复制
            TAG = sh(returnStdout: true, script: 'echo 123456')
            sh "sed -i 's/name:TAG/name:${TAG}/g' Dockerfile"

我将变量标记替换为正确的值,但sed出现问题。

代码语言:javascript
运行
AI代码解释
复制
+ sed -i s/name:TAG/name:123456
/g Dockerfile
sed: -e expression #1, char 22: unterminated `s' command```
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-12 21:02:21

您应该将echo 123456替换为printf 123456,因为echo在末尾添加了一个尾随换行符(这会在稍后破坏sed命令),并且您必须在sed命令两边使用双引号,以便在其中插入变量:

使用

代码语言:javascript
运行
AI代码解释
复制
TAG = sh(returnStdout: true, script: 'printf 123456')
sh 'sed -i "s/name:TAG/name:${TAG}/g" Dockerfile'
票数 1
EN

Stack Overflow用户

发布于 2021-08-18 05:41:50

伙计们试着在你的jenkinsfile文件里这么做

使用sh 'sed -i "s#name:TAG#name:${TAG.trim()}#" Dockerfile'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59105290

复制
相关文章
shell脚本–sed的用法[通俗易懂]
sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。
全栈程序员站长
2022/09/19
4K0
shell脚本–sed的用法[通俗易懂]
linux-shell脚本命令之sed
sed是一个非常好的文件处理工具, 它本身是一个管道命令, 以行为单位进行处理, 能够用于对数据行进行新增、选取、替换、删除等操作。
全栈程序员站长
2022/07/13
7200
Shell sed命令
语法:sed 选项 's/搜索的内容/替换的内容/动作' 需要处理的文件 动作一般是打印p和全局替换g
剧终
2020/08/26
1.5K0
sed: -e expression #1, char 24: unknown option to 's'
也就是说如果你需要替换的内容中存在 | 那么你的命令中用来分割的符号就需要使用 @ 或者 \ 否则就会报错
cywhat
2022/11/22
1K0
sed: -e expression #1, char 24: unknown option to 's'
Shell(9)——sed(1)
sed是行文本编辑工具:基本架构为sed -选项 ‘匹配规则和要执行出的action’。 -n把静默输出删掉、-i是对文本直接进行编辑。 匹配规则:// @@ ## !!之间放你要匹配的内容 动作:p是打印出来、d是删除、s是替换、i是当前行增加内容,a是下一行增加内容 (1)
gzq大数据
2020/11/11
3570
Shell(9)——sed(1)
shell实战(一):sed命令小结
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
create17
2019/05/06
1.9K0
(30)字符截取命令sed
sed是一种几乎包括在所有UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。
生信real
2020/09/02
1.5K0
jenkins相关shell命令
npm install -g cnpm --registry=https://registry.npm.taobao.org &&
憨批程序员
2020/09/05
6090
jenkins相关shell命令
一文掌握shell脚本的基本语法
欢迎大家star我的GitHub:https://github.com/SolerHo/geeks-shell,建议直接使用GitHub来查看排版,发现markdown有错位的情况。
阳光罗诺
2022/01/03
4.1K0
一文掌握shell脚本的基本语法
shell脚本:1_shell脚本基础
创建好脚本,并设置好权限,就可以将这个脚本放在某个目录中,来运行 比如当前目录下
Y大宽
2019/06/15
1.5K0
sed 命令+正则表达式
sed是一个非交互性性文本编辑器, 它编辑文件或标准输入导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多 sed命令用来编辑、删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节省了时间。sed必须通过行号和正则表达式指定要改变的文本行
一见
2018/08/07
3.4K0
Shell 编程日记
爱技术的小黄鸭
2023/06/15
2150
Shell 编程日记
Linux进阶命令和Shell编程
本文主要介绍了Linux命令行的一些常用命令,包括高级文本处理命令(如sed和awk)、文件操作命令(如touch、mkdir、rm、cp和mv)、文本搜索和排序命令(如grep、find、sort和uniq)以及shell脚本编程基础(如变量、运算符、循环和条件语句等)。此外,还介绍了Linux系统中的一些常用命令,如文件管理命令(如ls、cd、mkdir和rm)和文件处理命令(如touch、cat、grep和find)。
企鹅号小编
2018/01/09
1.7K0
Linux进阶命令和Shell编程
Shell脚本内建命令
描述:以shell命令的形式执行参数。将ARGs组合成一个字符串,将结果作为shell的输入,并执行生成的命令。
全栈工程师修炼指南
2022/09/28
1.7K0
Shell脚本内建命令
Python自动化运维之shell终极指南
第 2 章 核心知识[应用] 2.1 表达式 2.1.1 测试语句 应用场景 判断条件是否成立
海仔
2020/08/22
1.6K0
Shell脚本——内置命令
所谓 Shell 内置命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。
栗筝i
2022/12/01
2.2K0
任督二脉之Shell中的正则表达式cut命令awk命令sed命令sort命令wc命令
VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进。
Alfred Zhao
2019/05/24
1.2K0
《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk
这两个工具能够极大简化需要进行的数据处理任务。 19.1 文本处理 能轻松实现自动格式化、插入、修改或删除文本元素的简单命令行编辑。 sed和gawk就具备上述功能 19.1.1 sed编辑器 被称为流编辑器。 流编辑器会在编辑器处理数据之前预先提供的一组规则来编辑数据流。 sed根据命令来处理数据流中的数据。命令可以从命令行输入,也可以存储在一个命令文本文件中。 sed编辑器会执行下列操作: 1)一次从输入中读取一行数据 2)根据所提供的编辑命令匹配数据 3)按照命令修改流中的数据 4)将新的数据输出到S
xcywt
2018/01/11
1.9K0
《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk
Shell脚本学习1
Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell
用户9645905
2023/10/17
3330
shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
转载于:https://blog.51cto.com/8043410/2175024
全栈程序员站长
2021/06/17
1.7K0
shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

相似问题

sed: sed:-e表达式#1,字符63:未终止的‘s’命令

10

sed:-e表达式#1,字符5:未终止的‘s’命令

10

sed:-e表达式#1,字符93:未终止的‘s’命令

12

获取sed:-e表达式#1,字符41:未终止的‘s’命令

10

sed:-e表达式#1,未终止的‘命令

310
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档