代码之家  ›  专栏  ›  技术社区  ›  Aliquis

用SED[关闭]行注释/注释

  •  -2
  • Aliquis  · 技术社区  · 7 年前

    在我的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

    不幸的是,我不能让它工作。可能是因为捕捉字符有问题。有人能帮忙吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Oleg Andriyanov    7 年前

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

    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