我想知道如何在Mac OSX
中使用单个sed
语句执行多个查找/替换操作。我可以在Ubuntu
中做到这一点,但是由于OSX
的BSD
特性,命令必须稍作修改。
因此,给定一个包含以下字符串的文件:
"Red Blue Red Blue Black Blue Red Blue Red"
我想运行一条sed语句,该语句产生以下输出:
"Green Yellow Green Yellow Black Yellow Green Yellow Green"
我的两个带有限定find
的sed语句
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,但由于缺乏示例,我无法将其组合在一起。
发布于 2014-09-03 11:31:08
还应该可以使用分号;
组合sed
命令
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
表达式要简单得多。
https://stackoverflow.com/questions/19590980
复制相似问题