【问题标题】:How to use bash to replace a string [duplicate]如何使用bash替换字符串[重复]
【发布时间】:2013-10-31 07:34:51
【问题描述】:

我想在/etc/hosts中注释掉这一行:

127.0.0.1 test test 

变成:

#127.0.0.1 test test 

如何在 bash 命令行中使用单行来查找以 127 开头的行?我正在使用 Ubuntu 12.04。

谢谢

【问题讨论】:

    标签: bash ubuntu


    【解决方案1】:

    你可以使用sed(1):

    sed -i '/^127/s/^/#/' /etc/hosts
    

    -i 表示就地替换,所以替换发生在/etc/hosts,而不是标准输出上。

    '/^127/s/^/#/'中,'/^127/' 表示查找以 127 开头的行(^ 是行锚的开始),s/^/#/# 替换该行的开始。

    【讨论】:

      【解决方案2】:

      尝试使用sed

      sed -i.bak 's/^127/#&/' /etc/hosts
      

      -i.bak - 用 .bak

      替换并创建备份文件

      【讨论】:

        【解决方案3】:

        我认为您可以使用以下命令执行此操作:

        sed -i 's/127.0.0.1 test test/#127.0.0.1 test test/g' /etc/hosts
        

        【讨论】:

          猜你喜欢
          • 2017-01-21
          • 2013-02-01
          • 1970-01-01
          • 2021-08-12
          • 2011-10-19
          • 2013-05-18
          • 1970-01-01
          • 1970-01-01
          • 2016-09-13
          相关资源
          最近更新 更多