【问题标题】:SED replace a word inside a bracket [duplicate]SED替换括号内的单词[重复]
【发布时间】:2020-10-24 06:13:31
【问题描述】:

我需要批量更改一些单词,但是因为里面的括号,我觉得我做错了。

需要更改的行

echo "CMD_PLUGINS_ADMIN/admin/index.html";

我需要改成这样:

echo "CMD_PLUGINS_ADMIN/reseller/index.html";

我试过了:sed -ie 's/admin/reseller/' *

但不会改变任何东西,我希望有人知道正确的命令。

【问题讨论】:

  • 为什么是 [ ? .
  • @Paolo 谢谢是一个错字
  • 为什么不sed -i 's/admin/reseller/' file

标签: linux ubuntu sed centos


【解决方案1】:

您的输入有斜线并且您使用斜线作为 sed 分隔符 要么通过在斜杠前面加上反斜杠来转义输入中的斜杠:

echo '"CMD_PLUGINS_ADMIN/admin/index.html";' | sed 's/\/admin\//\/reseller\//g'
"CMD_PLUGINS_ADMIN/reseller/index.html";

或将分隔符更改为任何其他类似管道:

echo '"CMD_PLUGINS_ADMIN/admin/index.html";' | sed 's|admin|reseller|g'
"CMD_PLUGINS_ADMIN/reseller/index.html";

【讨论】:

    【解决方案2】:
    $ echo '"CMD_PLUGINS_ADMIN/admin/index.html";' | sed 's/\/admin\//\/reseller\//g'
    "CMD_PLUGINS_ADMIN/reseller/index.html";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-06
      • 2017-09-03
      • 1970-01-01
      • 2019-03-07
      • 2017-02-08
      • 1970-01-01
      • 2018-10-19
      • 2018-03-21
      相关资源
      最近更新 更多