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)
必须只是一个数字。