首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu和OS中sed的不同行为

Ubuntu和OS中sed的不同行为
EN

Stack Overflow用户
提问于 2018-02-08 12:52:27
回答 1查看 201关注 0票数 0

我正在尝试使用href为HTML中的一组href元素添加一个基本URL。

HTML字符串(单行):

代码语言:javascript
复制
<!-- helpers --> <li> <a href="form-helper/basics/">Form Helper</a> </li> <li> <a href="html-helper/icons/">Html Helper</a> </li> <li> <a href="modal-helper/basics/">Modal Helper</a> </li> <li> <a href="navbar-helper/basics/">Navbar Helper</a> </li> <li> <a href="panel-helper/basics/">Panel Helper</a> </li> </ul>⏎                                                                                    

我的命令(menu.html包含上面的字符串):

代码语言:javascript
复制
site_url='https://example.com'
menu=$(cat menu.html)
echo $menu | sed -E 's@</li>\s+@</li>\n@g' | sed -E 's@href="(.*?)"@href="'"$site_url"'/\1"@g'

这在我的Ubuntu机器上运行得很好,但是在OS上它给出了以下错误:

sed: 1:"s@href="(.*?)"@href="fo .“:RE错误:重复-操作符操作数无效

有没有办法让上面的sed同时在Ubuntu和OS上工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-08 13:02:28

代码语言:javascript
复制
echo $menu | sed -E 's@</li>\s+@</li>\n@g' | sed -E 's@href="([^"]*)"@href="'"$site_url"'/\1"@g'

我认为你尝试匹配字符而不是",所以用[^"]*代替.*?,它可以在我的MAC上工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48685985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档