私のNGINX設定ファイルに次のブロックがあります
server {
listen 80;
listen [::]:80;
server_name _;
root /web/default/wwwroot/;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
ブロック全体を削除したいです。次のsed / regexコマンドを試しました。
sed -ri '/server,/.*\}/d' /etc/nginx/nginx.conf
ただし、見つかった最初の閉じた括弧を削除してセクションを残します。
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
一致する閉じ括弧と一致させ、ブロック全体を削除するにはどうすればよいですか?
ありがとうございます。
ベストアンサー1
アドレスを使用して、パターン1とパターン2の間のすべての行を一致させることができますsed '/pattern1/,/pattern2/'
。
あなたの場合、次から始まる行からserver {
始まる行まですべてを削除すると、 }
次のように書かれます。
sed '/^server {/,/^ }/d' file