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 次 |
| 最近记录: |