加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 如何逃避加号在mac os x(BSD)sed?

发布时间:2020-12-14 06:29:37 所属栏目:百科 来源:网络整理
导读:我试图找到并替换一个或多个出现的字符使用sed从mac,从BSD一般命令sed. 我试试: echo "foobar" | sed -e "s/o+//g 期待看到: fbar 而是我看到 foobar 我当然可以手动扩展加号: echo "foobar" | sed -e "s/oo*//g" 但是为了得到加号,我该怎么办? 使用/ g
我试图找到并替换一个或多个出现的字符使用sed从mac,从BSD一般命令sed.

我试试:

echo "foobar" | sed -e "s/o+//g

期待看到:

fbar

而是我看到

foobar

我当然可以手动扩展加号:

echo "foobar" | sed -e "s/oo*//g"

但是为了得到加号,我该怎么办?

使用/ g标志,s / o // g就足以取代所有o的出现.

为什么不按预期工作:在旧的,过时的re是一个普通的字符(以及|,?).您应该指定-E标志以使其使用现代正则表达式:

echo "foobar" | sed -E -e "s/o+//"
# fbar

资料来源:man 7 re_format.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读