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;行が1つしかない場合(たとえば)にのみ機能します。つまり、返される値は$(sed -n "/server_name $server/{=}" $FILE)数値でなければなりません。

おすすめ記事