我正在尝试匹配并替换以下字符串:
<%= host_env %><%= host_tenant_id %>.<%= domain_name %>/<%= products['as']['server_context_worker'] %>
有什么想法吗?我试过了:
<%= host_env %><%= host_tenant_id %>\.<%= domain_name %>\/<%= products\['as'\]\['server_context_worker'\] %>
以及它的各种变化,但我没有取得任何成功。
答案 0 :(得分:0)
您可以使用字符类(即方括号本身)匹配sed
中的括号。在您的示例中,您可以执行以下操作:
$sed -e 's/[[].*[]]/{something new}/' < sedbrackets.txt
<%= host_env %><%= host_tenant_id %>.<%= domain_name %>/<%= products{something new} %>
如果不是您要查找的替代品,请发表评论。你的问题有点不清楚。当然,你可以像你一样多次使用它们。我只是在.*
之间使用它们一次作为例子。
答案 1 :(得分:0)
如果对匹配字符串使用不同的分隔符,则只需要转义括号和句点。
sed "s|<%= host_env %><%= host_tenant_id %>.<%= domain_name %>/<%= products\['as'\]\['server_context_worker'\] %>|Replacement Text|" <file>