首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用sed匹配双引号

如何使用sed匹配双引号
EN

Stack Overflow用户
提问于 2015-04-16 21:59:29
回答 3查看 7.2K关注 0票数 0

如何使sed使用双引号(")作为匹配?

我只尝试将"source/design替换为"source/design_new,而不更改第二个代码。

输入:

代码语言:javascript
运行
复制
"source/design",  
"include/source/design",

预期输出:

代码语言:javascript
运行
复制
"source/design_new",    #only this line renaming  
"include/source/design"

我试着使用命令:

代码语言:javascript
运行
复制
sed "s/\"source\/design/\"source\/design_new/g"

但它正在抱怨一个unmatched "错误。在sed中有没有使用双引号的方法

EN

回答 3

Stack Overflow用户

发布于 2015-04-16 22:12:35

基本上,sed接受s后面的任何内容作为分隔符(换行符或反斜杠除外)。因此,您可以使用一些其他字符代替/作为分隔符,比如;

示例:

代码语言:javascript
运行
复制
sed 's;"source/design;"source/design_new;g' input_file
票数 3
EN

Stack Overflow用户

发布于 2015-04-16 22:10:57

只需在命令两边使用单引号,而不是双引号。通过这种方式,您不必担心如何处理它们:

代码语言:javascript
运行
复制
sed 's~"source/design~"source/design_new~g' file
    ^                                     ^

对于给定的输入,此命令将返回:

代码语言:javascript
运行
复制
"source/design_new",  
"include/source/design",

还要注意,您可以通过在/中使用另一个分隔符(我使用了~,尽管它也可以是|或其他分隔符)来避免对每个分隔符进行转义。

票数 1
EN

Stack Overflow用户

发布于 2015-04-16 22:11:46

欢迎来到tcsh。不能在双引号中包含双引号。结束双引号和反斜杠的双引号:

代码语言:javascript
运行
复制
sed "s/"\""source\/design/"\""source\/design_new/g"

或者,可读性更好(使用不同的分隔符以避免反斜杠的需要,并且不使用引号,因为字母、斜杠和下划线不需要引号:

代码语言:javascript
运行
复制
sed s=\"source/design=\"source/design_new=g
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29677027

复制
相关文章

相似问题

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