首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用一个sed命令进行多个替换

使用一个sed命令进行多个替换
EN

Stack Overflow用户
提问于 2013-10-25 21:18:06
回答 1查看 32.4K关注 0票数 29

我想知道如何在Mac OSX中使用单个sed语句执行多个查找/替换操作。我可以在Ubuntu中做到这一点,但是由于OSXBSD特性,命令必须稍作修改。

因此,给定一个包含以下字符串的文件:

代码语言:javascript
复制
"Red Blue Red Blue Black Blue Red Blue Red"

我想运行一条sed语句,该语句产生以下输出:

代码语言:javascript
复制
"Green Yellow Green Yellow Black Yellow Green Yellow Green"

我的两个带有限定find的sed语句

代码语言:javascript
复制
color1="Green"  
color2="Yellow"  
find . -type f -exec sed -i '' s/Red/$color1/g {} \;  
find . -type f -exec sed -i '' s/Blue/$color2/g {} \;  

我尝试了几种分号和斜杠的组合,并查看了Apple's Dev man page for sed,但由于缺乏示例,我无法将其组合在一起。

EN

回答 1

Stack Overflow用户

发布于 2014-09-03 11:31:08

还应该可以使用分号;组合sed命令

代码语言:javascript
复制
find . -type f -exec sed -i '' -e "s/Red/$color1/g; s/Blue/$color2/g" {} \;

我想知道它的可移植性如何,并通过this Stackoverflow answer找到了一个到the POSIX specification of sed的链接。特别是当您有很多sed命令要运行时,这对我来说似乎比编写多个sed表达式要简单得多。

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

https://stackoverflow.com/questions/19590980

复制
相关文章

相似问题

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