首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用sed替换行为单引号

用sed替换行为单引号
EN

Stack Overflow用户
提问于 2015-02-17 14:01:04
回答 2查看 261关注 0票数 0

我想把以“选项时区”开始的单行配置改为单引号行:“'EST-10'”。但是当我这么做的时候

代码语言:javascript
复制
sed -i '/option timezone/c\option timezone 'EST-10'' /etc/config/system

单引号丢失,结果如下所示:

代码语言:javascript
复制
head /etc/config/system 

config system
option timezone EST-10

当然,引号前的反斜杠没有帮助。我可以通过\c命令来实现它吗?Ps.sed来自openwrt busybox,有限,只支持e,f,i,n,r。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-17 14:04:31

试试这个:

代码语言:javascript
复制
sed -i '/option timezone/c\option timezone '\'EST-10\' /etc/config/system

相邻的字符串由bash自动连接,因此关闭了第一个字符串,添加了一个单引号(需要转义),EST-10,然后是另一个转义单引号。

如果"EST-10“部分包含空格,则还需要将其放入单引号中:

代码语言:javascript
复制
sed -i '/option timezone/c\option timezone '\''EST - 10'\' /etc/config/system

双引号也是一种选择,但就我个人而言,我不喜欢使用它们,因为Bash将解释大量其他字符,比如$!,然后需要转义。

票数 3
EN

Stack Overflow用户

发布于 2015-02-17 14:04:41

您可以在双引号sed命令中使用单引号字符串,而不必费心地转义它们:

代码语言:javascript
复制
sed -i "/option timezone/c\option timezone 'EST-10'" /etc/config/system
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28563181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档