Итак, у меня есть этот код, это прокси-сервер squid, который ищет строки, которые соответствуют переменной $DELETE
.
Если пользователь печатает deleteall
для подтверждения, то sed удаляет все строки, соответствующие "s_test"
Теперь я хочу, чтобы sed удалил строку, которая соответствует переменной aclonly и строке выше, которая также может быть переменной, она всегда начинается с "#PR[0-9]*"
Спасибо за любые советыsed, удалите строку, которая находится перед другим
Example:
#PR0000
http_access allow s_test d_test http_port
function remove(){
source_acl=$(grep $DELETE /etc/squid3/conf.d/$CUSTOMER.conf)
echo $source_acl
acl_only=$(echo $source_acl | cut -f2 -d" ")
echo "#$DELETE = $acl_only"
echo "#FOLGENE ACL/RULES GEFUNDEN"
grep $acl_only /etc/squid3/conf.d/$CUSTOMER.conf
return=$?
if [ "$return" = "0" ];then
echo "WRITE DELETEALL TO REMOVE SHOWN ALCs/RULES"
echo "WRITE DELETE TO REMOVE ONLY SOURCE ACL WHICH MATCHES IP"
read delete
if [ "$delete" = "deleteall" ];then
sed -i -e /$acl_only/d /etc/squid3/conf.d/$CUSTOMER.conf
return=$?
if [ "$return" = "0" ];then
echo DELETE SEQUEZ COMPLETET
else
echo ERROR
fi
fi
if [ "$delete" = "delete" ];then
sed -i -e /$DELETE/d /etc/squid3/conf.d/$CUSTOMER.conf
return=$?
if [ "$return" = "0" ];then
echo DELETE SEQUEZ COMPLETET
else
echo ERROR
fi
fi
else
echo NO MATCHES
fi
exit