我正在尝试使用href
将基本网址添加到HTML字符串中的一组sed
元素。
HTML字符串(单行):
<!-- 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
包含上面的字符串):
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 X上,它给了我以下错误:
sed:1:&#34; s @ href =&#34;(。*?)&#34; @href =&#34; fo ...&#34;:RE错误:重复运算符操作数无效
有没有办法在Ubuntu和OS X上使上述sed
工作?
答案 0 :(得分:0)
echo $menu | sed -E 's@</li>\s+@</li>\n@g' | sed -E 's@href="([^"]*)"@href="'"$site_url"'/\1"@g'
我认为您尝试的匹配字符不是"
,因此将.*?
替换为[^"]*
,它适用于我的MAC操作系统。