如何删除 nginx.d/default.conf 文件中的所有内容;

如何删除 nginx.d/default.conf 文件中的所有内容;
server {
  server_name xxx.com;
  location / {
    client_max_body_size 200M;
    proxy_pass http://127.0.0.1:80;
    proxy_set_header        X-Real-IP          $remote_addr;
    proxy_set_header        X-Forwarded-For    $proxy_add_x_forwarded_for;
  }
  listen 80;
}

我用了sed -i "/server_name $server/,+9d" $FILE

server {
}

仍然出现。

谢谢你们

答案1

这是一个可能的解决方案,但我认为有更好的方法来解决它

您需要的是获取匹配行的编号并减去 1:

number=$(($(sed -n "/server_name $server/{=}" $FILE) - 1))

最后,您必须删除包含$number以下 9 行的匹配行 ( "/server_name $server/,+9d"):

#You should check if the line returned is >= 0
[ $number -ge 0 ] && {
  sed -i -e "${number}d" -e "/server_name xxx.com/,+9d" $FILE
}

重要的:此代码仅在只有一行(例如server_name xxx.com;)时才有效,换句话说,返回的值$(sed -n "/server_name $server/{=}" $FILE)必须只是一个数字。

相关内容