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))

마지막으로 다음 9개 행을 포함하는 $number일치하는 행( )을 삭제해야 합니다 ."/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)숫자여야 합니다.

관련 정보