Ale*_*son 17 regex macos bash grep sed
我正在尝试使用来自BSD通用命令的sed在mac上查找和替换一个或多个字符的出现.
我尝试:
echo "foobar" | sed -e "s/o+//g
Run Code Online (Sandbox Code Playgroud)
期待看到:
fbar
Run Code Online (Sandbox Code Playgroud)
但相反,我明白了
foobar
Run Code Online (Sandbox Code Playgroud)
我当然可以手动扩展加号:
echo "foobar" | sed -e "s/oo*//g"
Run Code Online (Sandbox Code Playgroud)
但是我需要做些什么才能使加号工作?
kha*_*hik 31
使用该/g
标志s/o//g
足以替换所有o次出现.
为什么+
不按预期工作:在旧的,过时的re +
是一个普通的角色(以及|
,?
).您应该使用现代正则表达式指定-E
标志以sed
使其成为:
echo "foobar" | sed -E -e "s/o+//"
# fbar
Run Code Online (Sandbox Code Playgroud)
来源:man 7 re_format
.
归档时间: |
|
查看次数: |
7341 次 |
最近记录: |