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)
数値でなければなりません。