【问题标题】:Comment out/Comment in lines with sed [closed]用 sed 注释掉/注释 [关闭]
【发布时间】:2019-01-21 04:11:31
【问题描述】:

在我的 nginx 配置文件中,我有以下几行:

location / {
        try_files $uri $uri/ =404;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

现在,我想以编程方式注释掉/取消注释这两行:

        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;

所以我想到了sed,并在这里找到了这篇文章: https://stackoverflow.com/a/27355109

不幸的是,我无法让它工作。转义字符可能存在问题。有人可以帮忙吗?

【问题讨论】:

  • "...我无法让它工作..." 不是一个好的问题陈述。它既缺少您正在使用的代码,也缺少您遇到的错误。
  • 您是否要根据它们相对于周围线条的位置或其他内容根据它们的内容将它们注释掉?

标签: linux sed


【解决方案1】:

要注释掉这些行,请使用命令

sed \
    -e 's|auth_basic "Restricted Content";|# \0|' \
    -e 's|auth_basic_user_file /etc/nginx/.htpasswd;|# \0|' \
    your_file

要取消注释,请使用:

sed \
    -e 's|# \(auth_basic "Restricted Content";\)|\1|' \
    -e 's|# \(auth_basic_user_file /etc/nginx/.htpasswd;\)|\1|' \
    your_file

【讨论】:

  • 非常感谢您的帮助!
猜你喜欢
  • 2014-06-08
  • 2023-03-16
  • 1970-01-01
  • 2011-02-04
  • 2017-12-24
  • 2013-08-02
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
相关资源
最近更新 更多