use*_*361 24 macos shell bsd sed
我想知道如何使用单个sed
语句进行多重查找/替换Mac OSX
.我能够做到这一点, Ubuntu
但由于其BSD
性质OSX
,命令必须略有改变.
所以,给定一个包含字符串的文件:
"Red Blue Red Blue Black Blue Red Blue Red"
Run Code Online (Sandbox Code Playgroud)
我想运行一个导致输出的sed语句:
"Green Yellow Green Yellow Black Yellow Green Yellow Green"
Run Code Online (Sandbox Code Playgroud)
我的两个sed声明有资格 find
color1="Green"
color2="Yellow"
find . -type f -exec sed -i '' s/Red/$color1/g {} \;
find . -type f -exec sed -i '' s/Blue/$color2/g {} \;
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种分号和斜线的组合,并查看了Apple的开发人员页面上的sed,但由于缺少示例,我无法将它拼凑在一起.
Lar*_*off 24
Apple的手册页说可以使用-e或-f选项指定多个命令. 所以我会说
find . -type f -exec sed -i '' -e s/Red/$color1/g -e s/Blue/$color2/g {} \;
Run Code Online (Sandbox Code Playgroud)
这肯定适用于Linux和其他Unices.
Foo*_*ooF 12
也可以sed
使用分号组合命令;
:
find . -type f -exec sed -i '' -e "s/Red/$color1/g; s/Blue/$color2/g" {} \;
Run Code Online (Sandbox Code Playgroud)
我想知道这是多么便携,并通过这个Stackoverflow找到答案链接到POSIX规范sed
.特别是如果你有很多sed命令可以运行,这对我来说似乎比编写多个sed
表达式更混乱.
归档时间: |
|
查看次数: |
25717 次 |
最近记录: |